SSMS
 sql >> डेटाबेस >  >> Database Tools >> SSMS

प्रबंधन स्टूडियो और प्रोफाइलर में क्वेरी निष्पादन समय। यह क्या मापता है?

अगर मैं आपके प्रश्न को सही ढंग से समझ रहा हूं, तो आप पहले प्रोफाइलर द्वारा रिपोर्ट की गई अवधि और एसएसएमएस में प्रस्तुत आंकड़ों के बीच अंतर पर सवाल उठा रहे हैं (या तो सामान्य समय के लिए निचले दाएं कोने में और/या सेट सांख्यिकी समय चालू करें)। इसके अलावा, आप उत्पादन डीबीए की टिप्पणी से असंबद्ध प्रतीत होते हैं कि दृश्य ~ 60 सेकंड की अपेक्षित अवधि में निष्पादित हो रहा है।

सबसे पहले, बुक्स ऑनलाइन से, SSMS द्वारा SET STATISTICS TIME ON के माध्यम से वापस रिपोर्ट किए जाने वाले स्टैटिक्स:

<ब्लॉकक्वॉट>

"प्रत्येक कथन को पार्स करने, संकलित करने और निष्पादित करने के लिए आवश्यक मिलीसेकंड की संख्या प्रदर्शित करता है।"

आप इसके लिए हाजिर हैं। प्रोफाइलर में अवधि के लिए, इसे इस प्रकार वर्णित किया गया है:

<ब्लॉकक्वॉट>

"घटना की अवधि (माइक्रोसेकंड में)।"

जहां से मैं बैठता हूं, इन दोनों को कार्यात्मक रूप से समकक्ष होना चाहिए (और, जैसा कि मुझे यकीन है कि आपने देखा है, प्रोफाइलर माइक्रोसेकंड में रिपोर्ट करेगा यदि आप SQL 2005 या बाद में जा रहे हैं)। मैं ऐसा इसलिए कहता हूं क्योंकि इस मामले में "घटना" (प्रोफाइलर में अवधि के संबंध में) चयन का निष्पादन है, जिसमें ग्राहक को वितरण शामिल है; यह दोनों ही मामलों में सुसंगत है।

ऐसा लगता है कि दूरस्थ रूप से क्वेरी निष्पादित करते समय आपको संदेह है कि भूगोल लंबी अवधि के लिए अपराधी है। यह बहुत अच्छा हो सकता है। आप एक क्वेरी विंडो में दृश्य पर चयन को निष्पादित करके और फिर दूसरी क्वेरी विंडो को उत्पन्न करके और क्वेरी पर प्रतीक्षा प्रकार की समीक्षा करके इसका परीक्षण कर सकते हैं:

select
    a.session_id
    ,a.start_time
    ,a.status
    ,a.command
    ,db_name(a.database_id) as database_name
    ,a.blocking_session_id
    ,a.wait_type
    ,a.wait_time
    ,a.cpu_time
    ,a.total_elapsed_time
    ,b.text
from sys.dm_exec_requests a
    cross apply sys.dm_exec_sql_text(a.sql_handle) b
where a.session_id != @@spid;

मुझे संदेह होगा कि यदि भूगोल समस्या है तो आपको ASYNC_NETWORK_IO प्रतीक्षा प्रकार के रूप में कुछ दिखाई देगा - अन्यथा, देखें कि इससे क्या होता है। यदि आप अपने दूरस्थ निष्पादन की क्वेरी को प्रोफाइल कर रहे हैं, तो अवधि SSMS में आपके द्वारा देखे जाने वाले समय के आंकड़ों को प्रतिबिंबित करेगी। हालाँकि, यदि आप Profiler का उपयोग कर रहे हैं और पाते हैं कि इस क्वेरी की अवधि वेब सर्वर में से किसी एक से निष्पादित होने पर जो उसी डेटा सेंटर में बैठता है जैसे SQL सर्वर अभी भी 7 मिनट ले रहा है, तो डीबीए एक बड़ा, मोटा झूठा है :)। मैं प्रोफाइलर का उपयोग उन प्रश्नों को रिकॉर्ड करने के लिए करूंगा जो 1 मिनट से अधिक समय लेते हैं, आपके दृश्य के लिए फ़िल्टर करने का प्रयास करते हैं और यह देखने के लिए औसत लेते हैं कि क्या आप प्रदर्शन के लिए लक्ष्य पर हैं।

क्योंकि कोई अन्य उत्तर पोस्ट नहीं किया गया है, मुझे चिंता है कि मैं यहां आधार से बहुत दूर हूं - लेकिन देर हो चुकी है और मैं इसके लिए नया हूं इसलिए मैंने सोचा कि मैं इसे आज़मा दूंगा!



  1. DBeaver
  2.   
  3. phpMyAdmin
  4.   
  5. Navicat
  6.   
  7. SSMS
  8.   
  9. MySQL Workbench
  10.   
  11. SQLyog
  1. बहुत अधिक पैरामीटर मान क्वेरी को धीमा कर रहे हैं

  2. मैं SQL सर्वर प्रबंधन स्टूडियो के भीतर निष्पादित प्रश्नों को कैसे देखूं?

  3. SQL सर्वर प्रबंधन स्टूडियो:कीबोर्ड शॉर्टकट के माध्यम से संपादन के लिए खुली तालिका

  4. SQL सर्वर 2008 प्रबंधन स्टूडियो इंटेलिजेंस ऑटो रीफ्रेश (मैन्युअल रूप से मेनू या कीबोर्ड शॉर्टकट के माध्यम से नहीं)

  5. कॉलम से टेक्स्ट निकालें और इसे एक नए कॉलम में कॉपी करें