2009-05-11 6 views

답변

101

예. CommandTimeout은 하나의 명령을 완료하는 데 걸리는 시간입니다. ConnectionTimeout은 서버와의 연결을 시작하는 데 걸리는 시간입니다.

예를 들어 상대적으로 오래 실행되는 쿼리를 실행할 수 있습니다. 완료하는 데 10 분이 걸릴 수 있지만 10 분이 지나면 연결이 시작되었다는 것을 알 수 있습니다. 나쁘다.

+0

호기심 : 기본 시간 초과가 30 초이므로 CommandTimeout을 60 초로 설정했지만 ConnectionTimeout을 기본값에서 변경하지 않으면 어떻게됩니까? – flipdoubt

+2

무슨 소리 야? CommandTimeout을 설정 중이거나 그렇지 않다면 ... –

+4

인수를 위해서, 나는! ** & # Q @를 가지고 있다고 가정 해 봅시다. 32 초가 걸리는 쿼리 SqlCommand.CommandTimeout = 40으로 설정하고 SqlConnection.ConnectionTimeout을 기본값 (아마도 30)으로두면 연결 시간이 초과됩니까? 즉 두 속성을 모두 설정해야합니까? "아니오"라고 말하는 것 같지만 SqlConnection.ConnectionTimeout 속성을 잊어 버렸고 CommandTimeout을 설정하여 필요한 모든 작업을 수행하는지 여부를 묻기 시작했습니다. – flipdoubt

23

SqlCommand.CommandTimeout = SQL 쿼리의 제한 시간 제한. 즉, 실행을 위해 얼마나 많은 시간 (예 : SELECT, UPDATE) 질의가 취해질 수 있는지를 의미합니다. SqlCommand.CommandTimeout을 초과하면 실행이 중지됩니다. 명령 시간 초과 오류가 발생합니다.

SqlConnection.ConnectionTimeout = 연결 제한 시간 제한. 의미는 연결 개체가 연결을 시도 할 수있는 시간입니다. 지정된 시간을 초과하면 연결을 중지합니다. 연결 시간 초과 오류가 발생합니다.

10

ConnectionTimeout을 열려고 시도 할 때까지 대기 할 기간을 지정합니다.SqlConnection입니다. Connection.Open() 명령과 관련이 있습니다.

SqlCommand.CommandTimeout 동안 SqlCommand를이 시간 초과하기 전에 대기 할 시간을 지정했습니다. 이것은 연결이 열리고 ExecuteXXX 메서드 중 하나가 Command 개체에서 호출 된 후에 발생합니다. CommandTimeout

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

이것은 세 번째 유형의 타임 아웃입니다. 주제 주인이 묻는 두 가지 중 하나가 아닙니다. 그리고 그 질문에 답하지 않습니다. 편집하기 전에 질문이 무엇인지 알지 못하기 때문에 -1하지 않을 것입니다. –

6

추가 정보

기본값은 30 초입니다. 영 (0)은 제한 없음을 나타냅니다. 코딩에서 CommandTimeout 값을 설정할 수 있습니다.

ConnectiontTimeout의 기본값은 15 초입니다. 영 (0)은 제한이 없음을 나타냅니다. 0 값 (마이너스 값)보다 작 으면 ArgumentException이됩니다. 코딩 및 구성 파일에서 ConnectionTimeout 값을 설정할 수 있습니다.