ОШИБКА [HYT00] [Microsoft][Драйвер ODBC SQL Server] Истекло время ожидания SQL - какое это время ожидания?
Я поддерживаю веб-приложение IIS, которое создает и отправляет операторы SELECT на SQL Server. Иногда операторы не очень эффективны или предназначены для довольно больших таблиц, поэтому для их выполнения требуется три или четыре минуты при запуске из SQL Management Studio. Когда выписки из приложения отправляются, сообщается следующее время ожидания:
ОШИБКА [HYT00] [Microsoft][Драйвер ODBC SQL Server] Истекло время ожидания SQL: SELECT ... большое утверждение здесь...
Невозможно (немедленно) улучшить отправленные операторы SQL, поэтому мне нужно временно увеличить время ожидания. Но я не могу найти тайм-аут, соответствующий этому сообщению об ошибке. Я надеюсь, что кто-то здесь может сказать мне, к какому времени ожидания он относится и где его можно просмотреть / изменить?
1 ответ
Вы можете изменить строку подключения и добавить Timeout=[секунд] в строку подключения Строка подключения MSDN.
Имейте в виду, однако, что HTTP-запрос тоже может истечь, поэтому убедитесь, что ваш SQL не более того. Кроме того, есть пользователь, очень раздражающий фактор;-) эта реализация также может вызвать потерю интереса к вашему сайту.
лучше исправить проблему, разделив таблицу на несколько файлов на диске и добавив процессор или оперативную память. одна вещь, которая также помогает, - это запрос к представлению с тем же именем, что и у таблицы, и удаление доступа к таблице. таким образом, вы можете настроить доступ в месте, где вы не меняете код приложения.
DBA делает много вещей, чтобы исправить ошибки программиста, упомянутый метод инкапсуляции - только один из многих вариантов.
Надеюсь, поможет
Вальтер