2010-08-03 9 views
6

क्वेरी 1: शीर्ष 10 कोड है कि अधिक से अधिक समय लेता हैmysql में समतुल्य क्वेरी क्या है?

select top 10 
    source_code, 
    stats.total_elapsed_time/1000000 as seconds, 
    last_execution_time from sys.dm_exec_query_stats as stats 
cross apply(SELECT 
       text as source_code 
      FROM sys.dm_exec_sql_text(sql_handle)) AS query_text 
order by total_elapsed_time desc 

QUERY2: शीर्ष 10 कोड है कि अधिकतम physical_reads

select top 10 
    source_code, 
    stats.total_elapsed_time/1000000 as seconds, 
    last_execution_time from sys.dm_exec_query_stats as stats 
cross apply(SELECT 
       text as source_code 
      FROM sys.dm_exec_sql_text(sql_handle)) AS query_text 
order by total_physical_reads desc 

इस article

+0

धन्यवाद संपादन के लिए जॉन, इस सवाल को स्पष्ट करना चाहिए: कैसे प्राप्त करें: शीर्ष 10 कोड जो अधिकतम समय और शीर्ष 10 कोड लेते हैं जो MYSQL में अधिकतम भौतिक_reads लेते हैं। – Bart

उत्तर

5

MySQL में आप एक लॉग फ़ाइल से इस जानकारी पर कब्जा करने के लिए, और एक प्रश्न के माध्यम से नहीं की जरूरत है। कोई शायद आपको बताएगा कि एक प्रश्न संभव है, लेकिन वे आपके लिए उचित नहीं हैं। देखें:

http://dev.mysql.com/doc/refman/5.1/en/log-tables.html "वर्तमान में, तालिकाओं के लिए प्रवेश करने के काफी अधिक सर्वर भूमि के ऊपर फ़ाइलों को प्रवेश करने से पड़ता है।"

.. पर्याप्त है कि यदि आप इस सवाल से पूछ रहे हैं, तो आप इसका उपयोग नहीं करना चाहते हैं।

तो अब आपका प्रश्न "लॉग फ़ाइल के साथ आप यह कैसे करते हैं?" बन जाता है। किसी क्वेरी के लिए भौतिक पढ़ने की संख्या स्टॉक-माईएसक्यूएल रिलीज़ में दर्ज नहीं की जाती है। हालांकि यह परकोना सर्वर में उपलब्ध है। वृद्धि भयानक है (भले ही मैं पक्षपाती हूँ, मैं Percona के लिए काम करते हैं):

http://www.percona.com/docs/wiki/patches:slow_extended

अगले सवाल यह है कि आप लॉग कुल करते हैं ताकि आप इन जानकारी प्राप्त कर सकते हो जाता है। इसके लिए, मैं एमके-क्वेरी-डाइजेस्ट का सुझाव देता हूं। http://www.maatkit.org/doc/mk-query-digest.html

1

से लिया टॉप चयन लेता है 10 ... चयन है ... MySQL में LIMIT 10। यदि आप क्रॉस आवेदन के बारे में पूछ रहे हैं जो INNER JOIN से बहुत अलग नहीं है, तो When should I use Cross Apply over Inner Join?

+0

वास्तव में सैम एसक्यूएल प्रश्नों को कैसे ढूंढ सकता है, जो निष्पादित करने में सबसे लंबा समय लेते हैं। –

0
select 
source_code, 
stats.total_elapsed_time/1000000 as seconds, 
last_execution_time from sys.dm_exec_query_stats as stats 
inner join(SELECT 
      text as source_code 
     FROM sys.dm_exec_sql_text(sql_handle)) AS query_text 
order by total_elapsed_time desc 
limit 10 

 

select 
source_code, 
stats.total_elapsed_time/1000000 as seconds, 
last_execution_time from sys.dm_exec_query_stats as stats 
inner join(SELECT 
      text as source_code 
     FROM sys.dm_exec_sql_text(sql_handle)) AS query_text 
order by total_physical_reads desc 
limit 10 
+0

अगर मैं गलत हूं, तो कृपया मुझे सही करें, लेकिन मुझे नहीं लगता कि उन गतिशील प्रबंधन ऑब्जेक्ट्स (sys.dm_exec_query_stats, sys.dm_exec_sql_text) MySQL में मौजूद हैं। –

+0

ओईसी, क्षमा करें। मैंने कभी उस हिस्से को नहीं देखा। सामान्य तालिका के रूप में बाहर निकला और अनदेखा करें –

संबंधित मुद्दे