我想从SQL Server计划缓存中获取所有语句,但没有SQL Server发出的声明。
这是查询。
SELECT DISTINCT
ss.query_plan_hash
FROM
(SELECT DISTINCT
plan_handle
FROM
sys.dm_exec_cached_plans WITH(NOLOCK)) AS qs
OUTER APPLY
sys.dm_exec_query_plan(qs.plan_handle) tp
INNER JOIN
sys.databases d ON tp.dbid = d.database_id
INNER JOIN
sys.dm_exec_query_stats ss ON ss.plan_handle = qs.plan_handle
WHERE
d.name = 'pokus'
我知道在sys.dm_exec_requests
中,如果列session_id
> 50然后过滤掉系统语句。但是对于计划缓存我不知道该怎么做。请帮忙。