सर्वर प्रबंधन स्टूडियो में क्वेरी प्लान प्रदर्शित करना


9

एक और SQL सर्वर प्रश्न: मेरे पास एक सरल क्वेरी है जो काउंटरों को रीसेट करने के बाद मुझे सबसे सीपीयू गहन 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? यह योजना के हैश की तरह प्रतीत नहीं होता है, जैसा कि ओरेकल में है। मैं पूछता हूं क्योंकि मैं उस स्थिति का पता लगाने में सक्षम होना चाहता हूं जिसमें एक बयान की योजना में बदलाव होता है।

प्रश्न 2: एक बार मेरे पास एक plan_handle है, मुझे वास्तविक योजना में दिलचस्पी है। मैं उदाहरण के लिए करते हैं तो,:

select * from sys.dm_exec_query_plan (0x060006001F176406B8413043000000000000000000000000)

Query_plan कॉलम में मुझे एक लिंक मिलता है, जब मैं क्लिक करता हूं तो XML डॉक्यूमेंट प्रदर्शित करता है। अगर मैं इसे डिस्क पर सेव करता हूं जो भी है। एसक्लिप्लान, मैं इसे विंडोज में डबल-क्लिक कर सकता हूं और यह प्रबंधन स्टूडियो में सही ढंग से प्रदर्शित होता है। निश्चित रूप से इस कदम से बचने का एक तरीका होना चाहिए ?!

प्रश्न 3: वहाँ एक रास्ता सेट SHOWPLAN_TEXT के पुराने दिनों में एक टेक्स्ट स्वरूप में एक्सएमएल वापस, जैसे कन्वर्ट करने के लिए है? मैं उन्हें ग्राफिक रूप से देखने में सक्षम होना चाहता हूं, लेकिन उन्हें कुछ सार्थक तरीके से अलग करना भी है।

धन्यवाद!

जवाबों:


7

मुझे Wrox प्रेस द्वारा SQL Server 2008 आंतरिक और समस्या निवारण पुस्तक में निम्नलिखित टिप मिली:

यदि आप SQL 2005 सर्वर से जुड़े SQL 2008 SSMS का उपयोग करते हैं, जब आप 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)

इसके अलावा, अगर आपने इसे अभी तक नहीं देखा है, तो SQL सेंट्री के मुफ्त प्लान एक्सप्लोरर को देखें। आपको पहले .sqlplan के रूप में XML को डिस्क पर सहेजना होगा, लेकिन यह SQL निष्पादन योजना के दृश्य का उपयोग करने के लिए बहुत आसान है। उम्मीद है कि किसी दिन एक दृश्य निष्पादन योजना डिफ उपकरण के साथ आएगा। : डी


9

A1: plan_handle स्टेटमेंट्स या बैच के समूह के लिए एक हैश है।

A2: नहीं, dm_exec_query_plan XML प्रारूप में क्वेरी योजना लौटाता है, इसलिए आपको ग्राफ़ देखने के लिए उस पर क्लिक करने की आवश्यकता है।

ए 3। इसे इस्तेमाल करे:

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

1
मुझे वापस मिल गया है <ShowPlanXML xmlns="http://schemas.microsoft.com...लेकिन अभी भी इसे सीधे प्रदर्शित करने का कोई तरीका नहीं है - मुझे इसे .sqlplanपहले फ़ाइल के रूप में डिस्क पर सहेजने की आवश्यकता है । अजीब। धन्यवाद tho ':)
गयुस
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.