Rob*_*Rob 5 performance sql-server-2008-r2 dmv
最近,我一直在 DMV 上针对我们的生产系统运行查询,以查询计划缓存。特别是,这里是查询的 from 子句:
FROM sys.dm_exec_cached_plans AS cp
CROSS APPLY sys.dm_exec_query_plan(plan_handle) AS qp
CROSS APPLY query_plan.nodes('/ShowPlanXML/BatchSequence/Batch/Statements/StmtSimple') AS batch(stmt)
CROSS APPLY stmt.nodes('.//IndexScan/Object[@Index=sql:variable("@IndexName")]') AS idx(obj)
Run Code Online (Sandbox Code Playgroud)
dm_exec_cached_plans 中大约有 28k 行。
当我这样做时,它会触发 PLE 降低非常低和非常高的磁盘 IO 和延迟(读/写停顿)的警报。
这令人惊讶,因为我从未阅读或经历过与针对 DMV 运行即席查询的性能问题相关的任何内容。该服务器具有 24 个内核、64GB RAM 和 SSD。我知道总有比这更多的东西,但我很难相信这些查询会导致这样的问题。
谁能解释一下为什么会发生这种情况?我很高兴提供有关我们配置的更多信息,但我也希望有一个简单的解释。
还有其他 DMV 可以帮助您量化这一点。 sys.dm_exec_sessions
有列cpu_time
,memory_usage
等等total_scheduled_time
。当您在一个会话中运行计划获取查询时,您可以在第二个会话中查询此 DMV 以了解第一个会话的成本。
令人高兴的是,您还可以同时量化第二次会议的费用!
归档时间: |
|
查看次数: |
162 次 |
最近记录: |