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

StackOverflow https://stackoverflow.com/questions/847264

  •  21-08-2019
  •  | 
  •  

Вопрос

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

Это было полезно?

Решение

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

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

Другие советы

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

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

ConnectionTimeout указывает продолжительность ожидания до истечения времени при попытке открыть а SqlConnection.Это актуально для Connection.Open() команда.

пока

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
Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top