30.06.2013 Views

Performance Tuning with SQL Server Dynamic Management Views

Performance Tuning with SQL Server Dynamic Management Views

Performance Tuning with SQL Server Dynamic Management Views

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Chapter 3: Query Plan Metadata<br />

SELECT COUNT(*)<br />

FROM sys.dm_exec_cached_plans ;<br />

Listing 3.7: Total number of cached plans.<br />

More useful though, is to get a feel for the "distribution" of plan reuse on your system. To<br />

do this, we can group on the usecounts column, and use the CASE expression to roll up<br />

bands of usecounts as shown in Listing 3.8.<br />

SELECT MAX(CASE WHEN usecounts BETWEEN 10 AND 100 THEN '10-100'<br />

WHEN usecounts BETWEEN 101 AND 1000 THEN '101-1000'<br />

WHEN usecounts BETWEEN 1001 AND 5000 THEN '1001-5000'<br />

WHEN usecounts BETWEEN 5001 AND 10000 THEN '5001-10000'<br />

ELSE CAST(usecounts AS VARCHAR(100))<br />

END) AS usecounts ,<br />

COUNT(*) AS countInstance<br />

FROM sys.dm_exec_cached_plans<br />

GROUP BY CASE WHEN usecounts BETWEEN 10 AND 100 THEN 50<br />

WHEN usecounts BETWEEN 101 AND 1000 THEN 500<br />

WHEN usecounts BETWEEN 1001 AND 5000 THEN 2500<br />

WHEN usecounts BETWEEN 5001 AND 10000 THEN 7500<br />

ELSE usecounts<br />

END<br />

ORDER BY CASE WHEN usecounts BETWEEN 10 AND 100 THEN 50<br />

WHEN usecounts BETWEEN 101 AND 1000 THEN 500<br />

WHEN usecounts BETWEEN 1001 AND 5000 THEN 2500<br />

WHEN usecounts BETWEEN 5001 AND 10000 THEN 7500<br />

ELSE usecounts<br />

END DESC ;<br />

Listing 3.8: An overview of plan reuse.<br />

92

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!