Câu trả lời:
SQL Server 2012 có một chỉ báo trong chính kế hoạch RetrievedFromCache
, có thể là "đúng" hoặc "sai".
Đây dường như là tài sản bạn đang hỏi về.
Đây là một mẫu (dòng cuối cùng hiển thị thuộc tính):
<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">
Thật không may, tôi không thấy bất cứ điều gì tương tự trong một kế hoạch được tạo bởi SQL Server 2008 R2.
Trong SQL Server 2008 R2, bạn có thể sử dụng sys.dm_exec_query_stats
DMV hệ thống để kiểm tra creation_time
cột cho các gói có cùng query_hash
giá trị. Hàm băm truy vấn có thể được lấy từ tiêu đề của XML kế hoạch (xem ví dụ ở trên). Truy vấn này sẽ trả về các hàng liên quan đến kế hoạch được đề cập ở trên:
SELECT *
FROM sys.dm_exec_query_stats qs
WHERE qs.query_hash = 0x9A4B63A948B30EA0;