разумные тайм-ауты SQL - PullRequest
       1

разумные тайм-ауты SQL

3 голосов
/ 06 ноября 2011

Когда вы выполняете запрос к базе данных, какова разумная стратегия тайм-аута.Обычно я просто оставляю значение по умолчанию на месте, но спрашиваю себя, было ли разумное практическое правило?Что обычно хотел бы видеть администратор БД?

Ответы [ 3 ]

2 голосов
/ 06 ноября 2011

Я думаю, это действительно зависит от того, что вы делаете. Если мы говорим об отчетах, то вам, вероятно, понадобится гораздо больший тайм-аут, чем если бы вы делали простой выбор / вставку / удаление.

Обычно мы разрешаем только 30 секунд на запросы без отчетов и 3 минуты на нашем сервере отчетов.

1 голос
/ 07 ноября 2011

Это один из тех "это зависит" ответов.Существует множество дорогостоящих запросов к миллионам строк данных, для которых задан тайм-аут с настройкой по умолчанию.

Какую стратегию я использую, чтобы установить для нее значение 0 (другими словами, без тайм-аута ), а затем использовать SQL Profiler (запустить трассировку) для получения продолжительности.Я умножил это время на 1.15, чтобы получить 15% -ный буфер, чтобы не превышать тайм-аут из-за системной задержки или просто "медленного" выполнения.Но, по моему мнению, если 115% времени прошло при тестировании и не завершено, 9 раз из 10 что-то пошло не так и тайм-аут в порядке.

1 голос
/ 06 ноября 2011

Если вы подключаетесь к SQL Server с использованием классов SqlCommand и SqlConnection, то вам нужно подумать о двух тайм-аутах:

SqlConnection.ConnectionTimeout

Время, необходимое для подключения к базе данных, по умолчанию это 30 секунд, что, на мой взгляд, слишком много. Мы уменьшаем это до 5 секунд.

А

SqlCommand.CommandTimeout

Что, очевидно, зависит от выполняемого вами запроса.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...