2016-12-08 5 views
1

저장 프로 시저와 여러 명령문이 있습니다. 다음은 프로 시저의 실행 시간 통계입니다.저장 프로 시저의 실행 시간이 다릅니다

SQL Server 구문 분석 및 컴파일 시간 : CPU 시간 = 0 ms, 경과 시간 = 0 ms. SQL Server 구문 분석 및 컴파일 시간 : CPU 시간 = 0 ms, 경과 된 시간 시간 = 0 ms.

SQL Server 실행 시간 : CPU 시간 = 0 ms, 경과 시간 = 1 ms.

(1 개 행 적용됨)

SQL Server 실행 시간 : CPU 시간 = 11484 밀리 초, 경과 시간 = 2277 MS.

(29 개 행 적용됨)

SQL Server 실행 시간 : CPU 시간 = 0 밀리 초, 경과 시간 = 1 밀리.

SQL Server 실행 시간 : CPU 시간 = 0 ms, 경과 시간 = 0 ms.

SQL Server 실행 시간 : CPU 시간 = 0 ms, 경과 시간 = 0 ms.

SQL Server 실행 시간 : CPU 시간 = 0 ms, 경과 시간 = 0 ms.

(1 개 행 적용됨)

SQL Server 실행 시간 : CPU 시간 = 0 밀리 초, 경과 시간 = 0 밀리.

(1 개 행 적용됨)

SQL Server 실행 시간 : CPU 시간 = 0 밀리 초, 경과 시간 = 0 밀리.

SQL Server 실행 시간 : CPU 시간 = 11484 ms, 경과 시간 = 2283 ms.

총 4562 ms를 볼 수 있습니다. 하지만 상태 표시 줄을 보면 2 초가 걸렸습니다. 나는 그것이 4 초가되어야한다고 생각한다. 이 두 가지가 다른 이유는 무엇입니까?

enter image description here

+0

12 초, 12 초, 6CPU의 2 분의 1을 나눈 값입니다. 그것은 내가하고있는 야생의 추측입니다. –

+1

공유 된 정보를 기반으로 첫 번째 정보는 프로 시저의 명령문 중 하나의 실행 시간이고 마지막 매개 변수는 프로 시저의 총 실행 시간입니다. 프로 시저 내의 모든 명령문의 합계입니다. – ughai

답변

1

2277 MS의 첫 번째 대기는 프로 시저 내에서 문 실행 시간입니다. 두 번째 것은 2283ms는 절차의 전체 기간입니다. 그래서 절차는 2283 밀리 실행하고 나는 당신이 볼 수있는이

CREATE PROCEDURE usp_delay AS BEGIN 
WAITFOR DELAY '00:00:02' 
END 
GO 

SET STATISTICS IO ON; 
SET STATISTICS TIME ON; 
GO 

EXEC usp_delay; 

같은 2 초 대기와 프로 시저를 만들 아닌 경우 (2277 + 2283) MS

을에 따라서 통계는 io를 시간으로 아래 :

SQL Server 구문 분석 및 컴파일 시간 : CPU 시간 = 0 ms, 경과 시간 = 0 ms.

SQL Server 구문 분석 및 컴파일 시간 : CPU 시간 = 0 ms, 경과 시간 = 9 ms.

SQL Server 실행 시간 : CPU 시간 = 0 ms, 경과 시간 = 2000 ms.

SQL Server 실행 시간 : CPU 시간 = 0 ms, 경과 시간 = 2010 ms.

문장 WAITFOR DELAY에 대해 경과 시간이 2 초 이상이고 전체 절차 시간에 하나의 경과 시간이 있음에 유의하십시오. 이것은 당신도 볼 수 있으며 프로 시저가 위의 합계를 기반으로 4010 ms가 아닌 2010 ms에서 실행됩니다.