การแสดงแผนแบบสอบถามใน Server Management Studio


9

คำถามอื่นเกี่ยวกับเซิร์ฟเวอร์ 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 หรือไม่ ฉันต้องการที่จะสามารถดูพวกเขาแบบกราฟิก แต่ยังทำให้พวกเขากระจายโดยอัตโนมัติในวิธีที่มีความหมายบางอย่าง

ขอบคุณ!

คำตอบ:


7

ฉันพบเคล็ดลับต่อไปนี้ในหนังสือ SQL Server 2008 Internals และการแก้ไขปัญหาเบื้องต้นโดย Wrox Press:

หากคุณใช้ SQL 2008 SSMS ที่เชื่อมต่อกับ SQL Server Server เมื่อคุณคลิกที่แผนแบบสอบถาม XML ระบบจะโหลดแผนแบบสอบถามกราฟิกให้คุณโดยอัตโนมัติ

ฉันตรวจสอบแล้วว่าทำงานได้โดยใช้ข้อความค้นหาต่อไปนี้จากหนังสือเล่มเดียวกัน:

select session_id, text, query_plan
from sys.dm_exec_requests
cross apply sys.dm_exec_sql_text(sql_handle)
cross apply sys.dm_exec_query_plan(plan_handle)

นอกจากนี้หากคุณยังไม่ได้ดูให้ลองตรวจสอบ Plan Explorer ฟรีของ SQL Sentry คุณจะต้องบันทึก XML ลงในดิสก์เป็น. sqlplan ก่อน แต่จะให้มุมมองการใช้ SQL Execution Plan ได้ง่ายขึ้น หวังว่าบางคนจะเกิดขึ้นกับเครื่องมือการดำเนินการตามแผนของ Visual สักวันหนึ่ง : D


9

A1: plan_handle เป็นแฮสำหรับกลุ่มของข้อความสั่งหรือแบทช์

A2: ไม่ dm_exec_query_plan ส่งคืนแผนคิวรีในรูปแบบ XML ดังนั้นคุณต้องคลิกที่เพื่อดูกราฟ

A3 ลองสิ่งนี้:

SELECT query_plan 
FROM sys.dm_exec_text_query_plan (0x06000100A27E7C1FA821B10600,0,-1);

1
ฉันกลับไป<ShowPlanXML xmlns="http://schemas.microsoft.com...แล้วแต่ยังไม่มีวิธีแสดงโดยตรง - ฉันต้องบันทึกลงดิสก์เป็น.sqlplanไฟล์ก่อน แปลก. ขอบคุณสรรพสินค้า :)
ออกุสตุส
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.