2009-12-10 4 views
1

색인 및 통계를 갱신했습니다.실제 실행 계획 조회 추적 결과와 VERY가 다릅니다.

쿼리는 WHERE 절에 하위 쿼리를 사용하여 간단합니다.

SELECT TOP 1 * from MeetingPost_reg 
WHERE userid = 1234 AND meetingpost_regid <> 9999 
AND DateStart < (SELECT DateStart FROM MeetingPost_reg WHERE meetingpost_regid = 9999) 
ORDER BY DateStart desc 

datastart, userid에 대한 색인이 있습니다. meetingpost_regid는 클러스터 된 인덱스가있는 PK입니다.

SHOWPLAN_TEXT :

StmtText                                                               
---------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------- 
    |--Compute Scalar(DEFINE:([MeetingPost_reg].[message]=[MeetingPost_reg].[message], [MeetingPost_reg].[ProcessedComment]=[MeetingPost_reg].[ProcessedComment], [MeetingPost_reg].[ProcessedMsg]=[MeetingPost_reg].[ProcessedMsg], [MeetingPost_reg].[pos_discou 
     |--Top(1) 
      |--Bookmark Lookup(BOOKMARK:([Bmk1000]), OBJECT:([dbo].[MeetingPost_reg])) 
       |--Nested Loops(Inner Join, OUTER REFERENCES:([MeetingPost_reg].[datestart])) 
         |--Clustered Index Seek(OBJECT:([dbo].[MeetingPost_reg].[PK_MeetingPost_reg]), SEEK:([MeetingPost_reg].[meetingpost_regid]=9999) ORDERED FORWARD) 
         |--Index Seek(OBJECT:([dbo].[MeetingPost_reg].[MeetingPost_reg12]), SEEK:([MeetingPost_reg].[datestart] < [MeetingPost_reg].[datestart]), WHERE:([MeetingPost_reg].[meetingpost_regid]<>9999 AND Convert([MeetingPost_reg 

(6 row(s) affected) 

실행 계획 :

실행 계획도 인덱스가 0 행으로 탐색 도시하고, 클러스터 된 인덱스의 총 비용, 1 행과 탐색 ~ .0006, 전체 CPU 비용 ~ .002

추적의 지속 시간은 250, CPU 172는 11입니다. 추적 이벤트 클래스는 SQL : Stmt입니다. 완료 됨

왜이 쿼리는 CPU를 많이 사용합니까?

답변

2

프로파일 러 이벤트는 172ms 작업자 시간과 250ms 경과 시간, 11 페이지 읽기를 보여줍니다. SQL:StmtCompleted 또는 SQL:BatchCompleted 이벤트입니까? 나중에이 쿼리가 배치의 유일한 문입니까?

실행 계획의 경우 전체 계획을 2 명의 운영자로 축소하고 계획 정보에서 4 개의 숫자 (0, 1, .0006 및 .002)가 상당히 줄어 듭니다.

캡처 된 계획과 명령문 실행이 정확히 동일한을 참조합니까? 그렇다면 계획을 반환하는 비용이 추적 이벤트에 포함 된 것으로 간주 했습니까?

+0

예 Profiler에서 실행되는 것과 완전히 동일한 실행입니다. 질의가 생체 내에서 비슷하게 무거워서 계획의 비용이라고 생각하지 않습니다. – willoller