获取没有系统语句的SQL Server计划缓存语句

时间:2017-03-22 05:19:22

标签: sql sql-server tsql caching

我想从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然后过滤掉系统语句。但是对于计划缓存我不知道该怎么做。请帮忙。

0 个答案:

没有答案