В чем разница между SqlCommand.CommandTimeout и SqlConnection.Параметра connectiontimeout?

есть ли разница между SqlCommand.CommandTimeout и SqlConnection.ConnectionTimeout в .NET?

5 ответов


да. CommandTimeout сколько времени может занять выполнение одной команды. ConnectionTimeout сколько времени может потребоваться, чтобы установить соединение с сервером для начала.

например, вы можете выполнять относительно длительные запросы - для них вполне нормально занять 10 минут, но если бы для начала потребовалось 10 минут, чтобы установить соединение, вы бы знали, что что-то было плохо.


свойство sqlcommand.CommandTimeout = ограничение времени ожидания для вашего SQL-запроса. Означает, сколько времени может занять запрос (например: SELECT, UPDATE) для его выполнения. Если он превышает SqlCommand.CommandTimeout, затем он останавливает выполнение. Произойдет ошибка тайм-аута команды.

SqlConnection.Connectiontimeout, т. = ограничение времени ожидания соединения. Означает, сколько времени объект подключения может пытаться подключиться. Если он превышает указанное время, он прекращает соединение. Ля произойдет ошибка тайм-аута соединения.


ConnectionTimeout указывает продолжительность ожидания перед тайм-аутом при попытке открыть an SqlConnection. Это относится к .

пока

SqlCommand.CommandTimeout задано время ожидания SqlCommand перед тайм-аутом. Это происходит после открытия соединения и одного из ExecuteXXX методы были вызваны для объекта Command.


Дополнительная Информация

значение по умолчанию CommandTimeout 30 секунд. Ноль(0) означает отсутствие ограничения. Вы можете установить CommandTimeout значение только в кодировке.

значение по умолчанию ConnectiontTimeout 15 секунд. Ноль (0) также указывает на отсутствие ограничений. Меньше нулевого значения (минус значение) будет получить ArgumentException. Вы можете установить ConnectionTimeout значение в файле кодирования и конфигурации.


select @@LOCK_TIMEOUT //get the TIMEOUT,default is -1
set LOCK_TIMEOUT = 600//set TIMEOUT with ms