使用MySQL資料庫的使用者,不可避免都會遇到下面三個難題:
1、曆史問題難定位
資料庫淩晨3點發生了CPU 100%的告警,但是該時間段卻沒有任何慢SQL,怎麼繼續查找原因?
2、SQL壓測模版難擷取
下周要進行大促壓測,DBA隻能找業務方一個個的收集SQL模版、執行頻率,這種方式效率低,并且無法保證正确性;
3、慢SQL是否要優化
不是所有的慢SQL都需要第一優先級優化,使用者迫切需要知道資料庫上哪些SQL最消耗資源,優化這些SQL,才可以提高執行個體的穩定性;
全量SQL診斷可以快速的解決上述問題。

如果一個執行個體的“執行耗時分布”越接近藍色,代表這個執行個體的SQL健康情況越好,越接近橙色和紅色,代表這個執行個體的SQL健康情況越差。
“執行耗時分布”展示了標明時間範圍内,所有SQL的執行耗時分布,将執行耗時分為了7個區間,每分鐘計算一次,分别是:
<code>[0,1]ms 滿足0ms ≤ 執行耗時 ≤ 1ms SQL執行次數占比</code>
<code>(1,2]ms 1ms < 執行耗時 ≤ 2ms SQL執行次數占比</code>
<code>(2,3]ms 2ms < 執行耗時 ≤ 3ms SQL執行次數占比</code>
<code>(3,10]ms 3ms < 執行耗時 ≤ 10ms SQL執行次數占比</code>
<code>(10,100]ms 10ms < 執行耗時 ≤ 100ms SQL執行次數占比</code>
<code>(0.1,1]s 0.1s < 執行耗時 ≤ 1s SQL執行次數占比</code>
<code>>1s 1s < 執行耗時 SQL執行次數占比</code>
例如 :
2017-10-12 19:15:00
該執行個體 執行耗時在[0,1]ms的SQL執行次數占比是80%;
執行耗時在(3,10]ms的SQL執行次數占比是13.33%;
執行耗時在(0.1,1]s的SQL執行次數占比是6.67%。
通過執行耗時,可以友善的檢視在標明的時間範圍内,每一分鐘 SQL的執行耗時。
SQL清單展示了標明時間範圍内每一類SQL的SQL文本、耗時比例、平均執行耗時、傳回行數等資訊。
耗時比例=(該類SQL執行耗時 執行次數)/(所有SQL執行耗時 總執行次數) * 100%
是以耗時比例越高的SQL,基本上可以簡單的了解為占用MySQL資源越多的SQL,優化該SQL,可以擷取更高的收益比,以下圖的場景為例:
紅框圈定的SQL,平均耗時是67.78ms,執行次數43次,是以耗時比例是67.18%;
黃框圈定的SQL,雖然平均耗時達到209.99ms,但是因為執行次數隻有一次,是以耗時比例隻有4.84%;
是以在業務模型沒有變化的情況下,優化第一條SQL,可以更好的降低執行個體的資源使用,提升執行個體的穩定性;
點選SQL ID,可以檢視該類SQL執行計劃、性能趨勢、SQL樣本:
使用者擷取權限并已登入DMS控制台。
目前暫時僅支援雲資料庫 RDS 版 MySQL 執行個體(暫不支援MySQL 5.7)。
登入DMS控制台——>選擇MySQL資料庫——>選擇“性能”菜單——>點選“SQL趨勢”——>點選“全量SQL診斷”
詳細操作步驟如下:
登入DMS控制台後,界面如下圖所示:
選擇MySQL資料庫,并單擊登入資料庫按鈕進行登入。
如下圖所示,在頂部導航欄菜單中,選擇性能>SQL趨勢: