Недавно у меня возникла проблема в Excel 2016 с использованием собственных 32-битных подключений ODBC (DSN) в Windows 10 для извлечения данных из представлений и таблиц SQL в SQL Server 2008.
По какой-то причине в прошломЧерез несколько недель (октябрь 2019 г.) некоторые команды SQL, вызываемые напрямую из Excel на SQL Server через ODBC, вызывали «крах» Excel, но больше напоминали зависание. Мне пришлось убить Excel с помощью диспетчера задач.
Представления выполнялись менее чем за 2 секунды в SQL Server, но для загрузки Excel потребовалось навсегда - иногда от 5 до 20 минут!
Огорчает то, что эти шаблоны Excel работали нормально до октября 2019 года и относительно быстро (до 30 секунд). В последнее время что-то изменилось, потому что теперь некоторые запросы приводят к зависанию Excel с «подключением к источнику данных» и без дальнейшей активности.
Я преобразовал запросы в PowerQuery , используя прямуюДанные к соединению SQL Server. Тем не менее, я заметил, что M-код для этого все еще ссылается на ODBC.
Source = Odbc.Query (...
И да,выполнение запроса заняло более 20 минут!
Сценарий M выглядит следующим образом ('#' для конфиденциальности):
let
ParamTable = Excel.CurrentWorkbook(){[Name="Table4"]}[Content],
wsFinal = if Text.From(ParamTable[ENTER VISIT]{0}) = null then "0" else Text.From(ParamTable[ENTER VISIT]{0}),
Param = "'" & wsFinal & "'",
Source = Odbc.Query("DRIVER=SQL Server;SERVER=####;DATABASE=####;",
"SELECT v.*
FROM vwEDImlRowCnt AS v
WHERE v.VisitID = " & Param)
in
Source
Кто-нибудь сталкивался с этим раньше?