Я получаю сообщение об ошибке:
System.Data.SqlClient.SqlException:
Истекло время ожидания.
Я проследил это до тайм-аута команды, который по умолчанию установлен на 30 секунд. Конечно, при профилировании завершается (не удается) через 30 секунд на точке.
Простой ответ - увеличить значение CommandTimeout
в коде. Вот подвох - у меня есть только исполняемый файл для работы.
Запрашиваемый запрос является хранимой процедурой, которая обычно выполняется между 18-26 секундами, и недавно он увеличился до 30+ секунд. Я сделал все от меня зависящее, чтобы оптимизировать запрос, который представляет собой один безобразный выбор для трех таблиц с объединениями. В любом случае это не вариант, так как набор данных будет продолжать расти и в будущем снова станет проблемой.
Все советы, которые я мог найти здесь и в других местах в сети, гласят, что единственное место, которое можно установить CommandTimeout
, - это код после установки соединения, и нет другого способа настроить время ожидания команды.
Я готов начать декомпиляцию исполняемого файла, чтобы попытаться переопределить / установить значение по умолчанию для тайм-аута команды.
Любые предложения о том, как я могу непрограммически увеличить значение тайм-аута команды, легко установить значение тайм-аута команды или другое (надеюсь, более разумное) решение?
Спасибо за вашу помощь!
ps - я уже довольно давно читаю ТАК. Моя репутация воняет, потому что я всегда нахожу ответ без необходимости писать. Вы, ребята, потрясающие, и я рад, что наконец нашел способ начать!