Звідки береться план виконання?


Відповіді:


9

У самому плані SQL Server 2012 є індикатор RetrievedFromCache, який може бути «істинним», або «хибним».

Це, здається, є власністю, про яку ви питаєте.

Це зразок (останній рядок показує властивість):

<StmtSimple StatementCompId="1" StatementEstRows="1" StatementId="1" 
StatementOptmLevel="FULL" StatementOptmEarlyAbortReason="GoodEnoughPlanFound" 
StatementSubTreeCost="0.0508992" StatementText="SELECT COUNT(*) 
&#xD;&#xA;FROM sys.tables" StatementType="SELECT" 
QueryHash="0x9A4B63A948B30EA0" QueryPlanHash="0xF357CAE882D5B15D" 
RetrievedFromCache="true">

На жаль, я не бачу нічого подібного в плані, сформованому SQL Server 2008 R2.

У SQL Server 2008 R2 ви можете використовувати sys.dm_exec_query_statsсистемний DMV для перевірки creation_timeстовпця щодо планів, які мають однакове query_hashзначення. Хеш запитів можна отримати з заголовка плану XML (див. Приклад вище). Цей запит поверне рядки щодо плану, згаданого вище:

SELECT *
FROM sys.dm_exec_query_stats qs
WHERE qs.query_hash = 0x9A4B63A948B30EA0;
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.