MySql性能優化(排查慢查詢SQL)


  • 以下為MS SQLSERVER慢查詢排查方法:

SqlServer 使用sys.dm_exec_query_stats查看開銷較高的語句

SELECT TOP 10 total_worker_time / 1000 AS [自編譯以來執行所用的CPU時間總量(ms)],
       total_elapsed_time/1000 as [完成執行此計划所用的總時間],
       total_elapsed_time / execution_count/1000 as [平均完成執行此計划所用時間],
       execution_count  as [上次編譯以來所執行的次數],    
       creation_time as [編譯計划的時間],
       deqs.total_worker_time / deqs.execution_count / 1000 AS [平均使用CPU時間(ms)],
       last_execution_time AS [上次開始執行計划的時間],
       total_physical_reads [編譯后在執行期間所執行的物理讀取總次數],
       total_logical_reads/execution_count [平均邏輯讀次數],
       min_worker_time /1000 AS [單次執行期間所用的最小CPU時間(ms)],
       max_worker_time / 1000 AS [單次執行期間所用的最大 CPU 時間(ms)],
       SUBSTRING(dest.text, deqs.statement_start_offset / 2 + 1,          
       (CASE
         WHEN deqs.statement_end_offset = -1 THEN
          DATALENGTH(dest.text)          
         ELSE deqs.statement_end_offset
       END - deqs.statement_start_offset
       ) / 2 + 1) AS [執行SQL], 
       dest.text as [完整SQL],
       db_name(dest.dbid) as [數據庫名稱],
       object_name(dest.objectid, dest.dbid) as [對象名稱]
       ,deqs.plan_handle [查詢所屬的已編譯計划]
  FROM sys.dm_exec_query_stats deqs WITH(NOLOCK)
 CROSS APPLY sys.dm_exec_sql_text(deqs.sql_handle) AS dest

 --平均使用CPU時間降序
 ORDER BY (deqs.total_worker_time / deqs.execution_count / 1000) DESC
 --執行時間降序
 --ORDER BY total_elapsed_time / execution_count DESC;

平均使用CPU時間降序

 

執行時間降序

 

 

查看執行計划

select * from sys.dm_exec_query_plan(0x05000A0045E84551103903112400000001000000000000000000000000000000000000000000000000000000)

 

 

 

 

  • 以下為MYSQL優化技巧:

 


二、查看



免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM