OLTP 시스템에서는 일반적으로 실행 계획 재사용이 바람직합니다.
 
  sys.dm_exec_cached_plans 에서 usecounts 수치가 낮고 SQL 문이 동일한 실행 계획을 확인하는 것이 필요합니다.
 

SELECT TOP 50

             cp.cacheobjtype

             ,cp.usecounts

             ,size=cp.size_in_bytes 

             ,stmt_start=qs.statement_start_offset

             ,stmt_end=qs.statement_end_offset

             ,qt.dbid

             ,qt.objectid

             ,qt.text

             ,SUBSTRING(qt.text,qs.statement_start_offset/2,

             (

             CASE WHEN qs.statement_end_offset = -1

             THEN LEN(CONVERT(nvarchar(max), qt.text)) * 2

             ELSE qs.statement_end_offset END -qs.statement_start_offset)/2)

             AS statement

             ,qs.sql_handle

             ,qs.plan_handle

FROM    sys.dm_exec_query_stats qs

                           CROSS APPLY sys.dm_exec_sql_text(qs.sql_handle)          AS qt

                           INNER JOIN sys.dm_exec_cached_plans                                          AS cp ON qs.plan_handle=cp.plan_handle

WHERE cp.plan_handle=qs.plan_handle

             AND qt.dbid IS NULL

ORDER BY [usecounts],[statement] ASC

GO

+ Recent posts