728x90
MSSQL이 쿼리 컴파일 부하를 줄이려고 노력한 것이
상당히 귀찮은 일들을 불러들이는군요.
캐시 오브젝트는 최근 실행순으로 정렬됩니다.
아래 URL에서 코드를 정리했습니다.

SELECT
  qs.last_execution_time
, qs.creation_time          
, SUBSTRING
  ( sqltxt.text
  , qs.statement_start_offset / 2 + 1
  , ( CASE 
        WHEN qs.statement_end_offset = -1 THEN LEN(CONVERT(NVARCHAR(MAX), sqltxt.text)) * 2 
        ELSE qs.statement_end_offset
      END
      - qs.statement_start_offset
    ) / 2 + 1
  ) "cropped_text"
, qs.execution_count        , sqlplan.query_plan        , qs.plan_generation_num    
, qs.total_worker_time      , qs.last_worker_time       , qs.min_worker_time        , qs.max_worker_time        
, qs.total_physical_reads   , qs.last_physical_reads    , qs.min_physical_reads     , qs.max_physical_reads    
, qs.total_logical_writes   , qs.last_logical_writes    , qs.min_logical_writes     , qs.max_logical_writes    
, qs.total_logical_reads    , qs.last_logical_reads     , qs.min_logical_reads      , qs.max_logical_reads      
, qs.total_clr_time         , qs.last_clr_time          , qs.min_clr_time           , qs.max_clr_time          
, qs.total_elapsed_time     , qs.last_elapsed_time      , qs.min_elapsed_time       , qs.max_elapsed_time      
, sqlplan.encrypted         , qs.sql_handle             , qs.plan_handle            , sqltxt.text "raw_text"
FROM sys.dm_exec_query_stats qs
CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle) sqltxt
CROSS APPLY sys.dm_exec_query_plan(qs.plan_handle) sqlplan
ORDER BY qs.last_execution_time DESC;

알 수 있는 정보
  1. 쿼리가 매개변수화 되었는가
  2. 플랜 확인
  3. 부하가 어느정도 되는가
  4. 재사용이 되는가
출처 : http://tsohr.tistory.com/279

+ Recent posts