2010-08-03 39 views
6

Query 1: Top 10 mã mà cần có thời gian tối đatruy vấn tương đương trong mysql là gì?

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: Top 10 mã mà sẽ đưa physical_reads tối đa

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 

lấy từ này article

+0

Cảm ơn bạn John đã chỉnh sửa, điều đó sẽ làm cho câu hỏi rõ ràng hơn: cách nhận được: 10 mã hàng đầu có thời gian tối đa và 10 mã hàng đầu có số lần hiển thị vật lý tối đa trong MYSQL. – Bart

Trả lời

5

Trong MySQL bạn cần phải nắm bắt thông tin này từ một tập tin đăng nhập, và không phải thông qua một truy vấn. Ai đó có thể sẽ cho bạn biết một truy vấn là có thể, nhưng họ không công bằng với bạn. Xem:

http://dev.mysql.com/doc/refman/5.1/en/log-tables.html "Hiện tại, đăng nhập vào bảng phát sinh chi phí máy chủ cao hơn đáng kể so với đăng nhập vào tệp".

.. đủ quan trọng nếu bạn hỏi câu hỏi này, bạn không muốn sử dụng câu hỏi này.

Vì vậy, bây giờ câu hỏi của bạn sẽ trở thành "làm cách nào bạn thực hiện việc này bằng tệp nhật ký?". Số lần đọc vật lý cho một truy vấn không được ghi lại trong bản phát hành chứng khoán MySQL. Nó có sẵn trong Percona Server mặc dù. Việc tăng cường là tuyệt vời (thậm chí nếu tôi thiên vị, tôi làm việc cho Percona):

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

Câu hỏi tiếp theo trở nên thế nào để bạn tập hợp các bản ghi để bạn có thể tìm thấy những thông tin chi tiết. Đối với điều đó, tôi đề nghị mk-query-digest. http://www.maatkit.org/doc/mk-query-digest.html.

1

SELECT TOP 10 ... là SELECT ... LIMIT 10 trong MySQL. Nếu bạn đang hỏi về ỨNG DỤNG CROSS không quá khác với INNER JOIN, hãy xem When should I use Cross Apply over Inner Join?

+0

thực sự sam đang hỏi về cách tìm các truy vấn SQL mất nhiều thời gian nhất để thực thi. –

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

Hãy sửa tôi nếu tôi sai, nhưng tôi không nghĩ rằng các đối tượng quản lý động đó (sys.dm_exec_query_stats, sys.dm_exec_sql_text) tồn tại trong MySQL. –

+0

oic, xin lỗi. Tôi không bao giờ để ý thấy phần đó. Bỏ qua và bỏ qua như một bảng bình thường –

Các vấn đề liên quan