Я уже некоторое время использую Excel Data Get and Transform (например, Power Query) для запроса данных с нашего сервера Excel BI хранилища данных с помощью мастера SSAS.
Ряд таких запросов, которые извлекли более 500 000 записей (до 3 или 4 миллионов строк), начали не завершаться примерно к 1 августа 2018 года.
После создания минимального тестового запроса (QueryTest), настроенного так, чтобы едва возвращать 450 тыс. Записей в течение примерно часа в «режиме сбоя», мы имеем одну основную гипотезу: кажется, что причиной является обновление версии Office / Excel.
Если мы используем более ранние версии MS Office 365 (например, около 1705, сборка 8201.2200, нажмите для запуска), тогда QueryTest вернет все 450 тыс. Записей примерно за 6 минут. Если мы используем текущие, обновленные версии Excel (v 1803, сборка 9126.2295), тестовые прогоны иногда не завершаются до истечения времени ожидания через час или занимают значительно больше, чем 1/2 часа. (См. Таблицу номинальных 6 минутных пробегов.)
В быстрых, более ранних версиях Excel на вкладке «Данные» на ленте Excel предусмотрены отдельные пункты меню «Показать запросы» и «Показать подключения», и каждая команда открывает отдельную панель.
В «сломанных» более поздних версиях есть только один элемент для «Показать запросы и соединения», и на открывшейся панели имеется вкладка «Запросы и соединения».
Я провел много-много тестов. Одни и те же результаты возникают независимо от того, какой ноутбук выполняет запрос, независимо от того, какая учетная запись пользователя используется, независимо от того, подключен ли ноутбук напрямую к корпоративной локальной / глобальной сети или через VPN и, как правило, независимо от географического расположения. В некоторых местах QueryTest работает менее плохо, возможно, из-за лучшей производительности сети или задержки.
Мы также используем Excel в Citrix, где проблема не существует, но, похоже, наша версия Citrix Excel является одной из «старых» версий с разделенными меню «Запросы и соединения».
Мы протестировали с удаленной TrendMicro (нашей антивирусной программой) без изменения относительной разницы в производительности.
Я предполагаю, что протоколы безопасности и / или доступа изменились каким-то образом, что привело к более медленной обработке или упаковке результатов обратно с сервера, но это даже не научная WAG.
Итак, кто-нибудь знает, что могло произойти в обновлениях, которые могут быть причиной этого, и, что более важно, как настроить запрос сервера и / клиента для восстановления скорости?
Результаты теста:
Test Name Records Seconds Records/Sec Complete
Old version 1 454,781 140 3,248.44 yes
Old version 2 454,781 137 3,319.57 yes
Old version 3 454,781 141 3,225.40 yes
New version 1 101,284 360 281.34 No
New version 2 94,836 360 263.43 No
New version 3 107,236 360 297.88 No