이 내용을 이해할 수 없습니다. SQL Server에서 초당 수십 번 실행되는 프로세스가 있습니다 (데이터가 서버로 전송 됨). 프로세스가 잘 실행되며 처리 요청은 50 ~ 200ms가 소요됩니다. 그런 다음 약 1.5 분에 한번씩 모든 요청이 갑자기 15000ms에서 22000ms (15에서 22 초)가 소요됩니다 (그러나 산발적으로). 동시에 서버의 CPU 사용량이 급격히 감소합니다. 때로는 (약 70 %) 평균 디스크 대기열 길이는 CPU가 떨어지기 전과 요청이 느려지 기 전에 나타납니다.SQL Server가 20 초 동안 처리를 중지합니다.
perfmon에서 CPU를보고 있는데 보통 평균 CPU가 약 50 % 인 20 %에서 70 % 사이에서 점프합니다. 일이 멈 추면 약 20 초 동안 약 20 %의 스파이크로 0 %로 떨어집니다.
동시에 SQL 활동 모니터를보고 있습니다. 일반적으로 1 ~ 4 개의 EXECUTE 트랜잭션이 나열되지만 EXECUTE 트랜잭션이 시작되면 20 개 또는 30 개의 트랜잭션으로 시작됩니다. 트랜잭션이 들어오고 있지만 처리 중이 아닙니다.
내가 블록 확인하고 볼 수 없을 : 나는 "스냅 숏 격리"
에서 실행하고
Select A.*
From master.dbo.sysprocesses as A with (nolock)
Where A.blocked <> 0
참고 I 오류 로그에 시스템 기록 교착 상태를 가지고, 아무도보고되지.
실행중인 다른 프로세스에 대해 SQL 에이전트를 점검했지만 이러한 이벤트가 발생할 때 스케줄되지 않았습니다.
다른 이벤트가 들어오는 SQL 프로파일 러를 보았는데 아무 것도 없었습니다. 또한 File Growth 이벤트를 지켜 봤는데 아무 것도보고하지 않습니다.
요청이 20000ms를 차지하는 경우에도 SQL 프로필러는 2000 미만의 CPU 및 50 미만의 CPU를보고합니다. 프로세스 자체는 리소스를 사용하지 않는 것으로 보입니다. 그러나 로그 아웃 이벤트는 높은 읽기와 CPU를보고합니다 (모든 관련이 있는지는 잘 모르겠습니다).
이 이벤트가 발생했을 때 내 이벤트 로그에는 아무 것도 없습니다.
아이디어가 있으십니까? 봐야 할 다른 곳?
Window 2003 32 비트에서 SQL Server 2005 Standard를 실행 중입니다.
마이클, 내 블로그 게시물보기 [설명되지 않는 SQL Server 시간 초과 및 일시적인 차단] (http://blog.digitaltools.com/post/2009/02/24/Unexplained-SQL-Server-Timeouts-and-Intermittent-Blocking .aspx). 특히 저장된 proc에 "SELECT INTO"가 있거나 임시 테이블에서 삭제 된 경우. Jim – JBrooks
일반적으로 우리는 데이터가 삽입되기 전에 정의 된 테이블 변수 (임시 테이블이 아님)를 사용합니다. 나는 모든 과정을 살펴보고 다시 확인한다. –