Я поддерживаю некоторых налоговых консультантов, которые любят использовать Excel, когда они, вероятно, должны использовать Access. Так или иначе, они создали два файла Excel, A и B. Файл B имеет ячейки, связанные с файлом A. Файл A составляет 27 МБ, а файл B - 16 МБ. Один лист содержит около 1 миллиона строк, а другой лист содержит целую кучу SUMIF на 1 миллион строк. Не самая лучшая идея, но что угодно.
Оба файла Excel открываются и пересчитываются в течение разумного периода времени (1-2 минуты). Для файлов такого размера это приемлемо.
Вот проблема: после того, как вы измените ячейку и сохраните файл B, потребуется 30 минут, чтобы сохранить файл, и процессоры будут работать на полной скорости. Я пробовал это на 6 разных машинах, все под управлением Windows XP SP3 с Office 2007 SP2 и все исправления. Характеристики варьируются от одной машины с 512 МБ или ОЗУ до машины с 4 ГБ ОЗУ и четырехъядерными процессорами. Один и тот же результат каждый раз.
Вот ключевой момент: если я сделаю эту же операцию сохранения на виртуальной машине VMWare, файл будет сохранен через 1 минуту. Я попробовал это с моими серверами ESX в офисе, моим Mac Fusion дома и рабочей станцией VMWare в офисе. Неважно, сколько оперативной памяти имеет виртуальная машина ... она каждый раз экономит около 1 минуты.
У кого-нибудь есть идеи, почему это происходит и как это исправить?