另一个SQL Server问题:自计数器重置以来,我有一个简单的查询,该查询为我提供了最多CPU密集型SQL:
select top 10
sum(qs.total_worker_time) as total_cpu_time,
sum(qs.execution_count) as total_execution_count,
qs.plan_handle, st.text
from
sys.dm_exec_query_stats qs
cross apply sys.dm_exec_sql_text(qs.plan_handle) as st
group by qs.plan_handle, st.text
order by sum(qs.total_worker_time) desc
问题1:究竟是什么plan_handle
?它似乎不是计划的哈希,就像在Oracle中一样。我问是因为我希望能够发现陈述计划发生变化的情况。
问题2:一旦有了plan_handle,我会对实际计划感兴趣。因此,例如:
select * from sys.dm_exec_query_plan (0x060006001F176406B8413043000000000000000000000000)
在query_plan列中,我获得了一个链接,单击该链接可显示XML文档。如果将它保存为磁盘上的what.sqlplan,则可以在Windows中双击它,并在Management Studio中正确显示。肯定有某种方法可以避免此步骤吗?
问题3:有没有办法像过去的SET SHOWPLAN_TEXT一样将XML转换回文本格式?我希望能够以图形方式查看它们,还希望以某种有意义的方式自动对它们进行比较。
谢谢!
<ShowPlanXML xmlns="http://schemas.microsoft.com...
但是仍然无法直接显示它-我需要.sqlplan
先将其作为文件保存到磁盘。奇怪的。谢谢tho':)