Тайм-аут выполнения SQL Server против .NET SqlCommand.CommandTimeout. Кто выигрывает? - PullRequest
0 голосов
/ 22 сентября 2011

Я попытался найти ответ, поиск на этой странице и в Google безуспешно!

Если я изменю «Тайм-аут выполнения» на экземпляре SQL Server (Сервис-> Параметры-> Выполнение запроса) и задаю SqlCommand.CommandTimeout в коде .NET с использованием SQL Server. Какая собственность выигрывает?

Приветствие --Jocke

Ответы [ 2 ]

2 голосов
/ 22 сентября 2011

Тайм-аут - это свойство уровня соединения - оно применяется к каждому отдельному соединению.

При переходе в «Сервис-> Параметры-> Тайм-аут выполнения» вы затрагиваете только что созданное соединение в SQL Server Management Studio -это не относится к экземпляру SQL Server, к которому вы выполняете запросы.

Так что SqlCommand.CommandTimeout определенно «победит».

1 голос
/ 22 сентября 2011

Когда вы идете в «Инструменты-> Параметры-> Тайм-аут выполнения» в SSMS, это устанавливает SqlCommand.CommandTimeout для SSMS. Не больше, не меньше.

В ядре SQL Server нет эквивалентного значения SqlCommand.CommandTimeout: SQL Server не прервет запрос на тайм-аут команды, потому что он не выполняет команду. Клиент делает

...