Apakah ada cara saya dapat menentukan apakah paket baru saja dibuat untuk permintaan tertentu, atau ditemukan dalam cache paket?
10
Apakah ada cara saya dapat menentukan apakah paket baru saja dibuat untuk permintaan tertentu, atau ditemukan dalam cache paket?
SQL Server 2012 memiliki indikator dalam paket itu sendiri RetrievedFromCache
, yang dapat berupa "benar" atau "salah".
Tampaknya ini properti yang Anda tanyakan.
Ini adalah sampel (baris terakhir menunjukkan properti):
<StmtSimple StatementCompId="1" StatementEstRows="1" StatementId="1"
StatementOptmLevel="FULL" StatementOptmEarlyAbortReason="GoodEnoughPlanFound"
StatementSubTreeCost="0.0508992" StatementText="SELECT COUNT(*)

FROM sys.tables" StatementType="SELECT"
QueryHash="0x9A4B63A948B30EA0" QueryPlanHash="0xF357CAE882D5B15D"
RetrievedFromCache="true">
Sayangnya, saya tidak melihat hal serupa dalam paket yang dibuat oleh SQL Server 2008 R2.
Di SQL Server 2008 R2, Anda bisa menggunakan sys.dm_exec_query_stats
sistem DMV untuk memeriksa creation_time
kolom untuk paket yang memiliki nilai yang sama query_hash
. Hash kueri dapat diperoleh dari tajuk rencana XML (lihat contoh di atas). Kueri ini akan mengembalikan baris mengenai paket yang disebutkan di atas:
SELECT *
FROM sys.dm_exec_query_stats qs
WHERE qs.query_hash = 0x9A4B63A948B30EA0;