คำถามอื่นเกี่ยวกับเซิร์ฟเวอร์ SQL: ฉันมีคำถามง่ายๆที่ให้ CPU ที่ใช้ CPU มากที่สุดตั้งแต่ตัวนับถูกรีเซ็ต:
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: เมื่อฉันมีแผนมือจับฉันสนใจแผนจริง ดังนั้นฉันทำเช่น:
select * from sys.dm_exec_query_plan (0x060006001F176406B8413043000000000000000000000000)
ในคอลัมน์ query_plan ฉันจะได้รับลิงค์ที่เมื่อฉันคลิกแสดงเอกสาร XML ถ้าฉันบันทึกลงดิสก์เป็นอะไรก็ได้ qlplan ฉันสามารถคลิกสองครั้งใน Windows และแสดงอย่างถูกต้องใน Management Studio แน่นอนต้องมีวิธีหลีกเลี่ยงขั้นตอนนี้ด้วย!
คำถามที่ 3: มีวิธีการแปลง XML กลับเป็นรูปแบบข้อความเช่นในวันเก่าของ SET SHOWPLAN_TEXT หรือไม่ ฉันต้องการที่จะสามารถดูพวกเขาแบบกราฟิก แต่ยังทำให้พวกเขากระจายโดยอัตโนมัติในวิธีที่มีความหมายบางอย่าง
ขอบคุณ!
<ShowPlanXML xmlns="http://schemas.microsoft.com...
แล้วแต่ยังไม่มีวิธีแสดงโดยตรง - ฉันต้องบันทึกลงดิสก์เป็น.sqlplan
ไฟล์ก่อน แปลก. ขอบคุณสรรพสินค้า :)