2010-06-03 5 views
0

SQL Server 데이터베이스에 대해 sql 코드를 실행할 때 다음 ODBC 시간 초과 오류가 발생합니다.간단한 쿼리의 ODBC 시간 초과 오류

: "S1T00"

을 "연결 오류 [마이크로 소프트] [ODBC SQL Server 드라이버] 제한 시간이 만료되었습니다"여기 혼란 것은 우리의 스택 덤프가 말한다입니다 타임 아웃이 발생했을 때 실행중인 SQL 코드 - 매우 간단합니다 : TRANCOUNT

또는 때때로 AS

SELECT @@ TRANCOUNT ...

BEGIN TRANSACTION

우리 고객은 이러한 오류가 발생했을 때 데이터베이스 서버에 부하가 걸렸다 고 말합니다. 그 간단한 문장이 시간 초과 될 수있는 원인은 무엇일까요? 타임 아웃 설정은 1 초에서 5 초 사이로 매우 짧습니다.하지만 여전히 SELECT @@ TRANCOUNT는 즉시 발생해야합니다.

아이디어가 있으십니까?

답변

2

드라이버에 따라 다를 수 있지만 ODBC 시간 초과가 클라이언트에서 처리 될 수 있다고 생각합니다. 즉 바이러스 스캐너에서 기타 프로세스로 인한 네트워크 지연이나 심지어 약간의 서버 딸꾹질로 인해 1 ~ 2 초의 지연이 발생할 수 있습니다. 따라서 시간 제한이 실제로 1 초인 경우 시간 초과 오류가 발생할 수 있습니다.

합리적인 시간 초과로 인해 5 초조차도 약간 낮은 것 같습니다. 이것은 클라이언트와 서버가 동일한 실제 시스템에 있지 않다고 가정합니다.

+0

1 초가 다소 짧은 것처럼 보일 수도 있습니다. 나는 코드에 대한 나의 해석이 정확한지 조사하기 위해 조사를해야 할 것이다. 제한 시간을 길게하는 것은 생각할 필요가없는 것처럼 보이지만, 불행하게도 이것은 제 3 자 코드이며 제한 시간을 변경하면 예기치 않은 결과가 발생할 수 있습니다. – Clinemi