我试图确定一个 proc 执行了多少次。
当我按计划句柄搜索时,我在 dm_exec_cached_plans 中找到了一条记录,但在 dm_exec_query_stats 中没有。我能找到的所有文档都表明,如果记录在 dm_exec_cached_plans 中,那么它应该始终在 dm_exec_query_stats 中有相应的记录。
有谁知道这是不正确的情况?
我试图确定一个 proc 执行了多少次。
当我按计划句柄搜索时,我在 dm_exec_cached_plans 中找到了一条记录,但在 dm_exec_query_stats 中没有。我能找到的所有文档都表明,如果记录在 dm_exec_cached_plans 中,那么它应该始终在 dm_exec_query_stats 中有相应的记录。
有谁知道这是不正确的情况?
你在哪里读到的——如果一条记录在 dm_exec_cached_plans 中,那么它应该总是在 dm_exec_query_stats 中有相应的记录?
实际上dm_exec_cached_plans
在计划缓存中对每个编译计划都有记录,并且dm_exec_query_stats
在相应的缓存计划中可以对每个查询语句都有记录。dm_exec_query_stats
对于缓存对象类型“Parse Tree”或“CLR Compiled Proc”的缓存计划或系统存储过程、即席查询、预准备语句等对象,可以为空。
使用 sys.dm_exec_procedure_stats 怎么样?
请参阅http://msdn.microsoft.com/en-us/library/cc280701%28v=sql.100%29.aspx