天天看點

資料管理DMS 全量SQL診斷:你的SQL是健康的藍色,還是危險的紅色?

使用MySQL資料庫的使用者,不可避免都會遇到下面三個難題:

1、曆史問題難定位

資料庫淩晨3點發生了CPU 100%的告警,但是該時間段卻沒有任何慢SQL,怎麼繼續查找原因?

2、SQL壓測模版難擷取

下周要進行大促壓測,DBA隻能找業務方一個個的收集SQL模版、執行頻率,這種方式效率低,并且無法保證正确性;

3、慢SQL是否要優化

不是所有的慢SQL都需要第一優先級優化,使用者迫切需要知道資料庫上哪些SQL最消耗資源,優化這些SQL,才可以提高執行個體的穩定性;

全量SQL診斷可以快速的解決上述問題。

資料管理DMS 全量SQL診斷:你的SQL是健康的藍色,還是危險的紅色?

如果一個執行個體的“執行耗時分布”越接近藍色,代表這個執行個體的SQL健康情況越好,越接近橙色和紅色,代表這個執行個體的SQL健康情況越差。

資料管理DMS 全量SQL診斷:你的SQL是健康的藍色,還是危險的紅色?

“執行耗時分布”展示了標明時間範圍内,所有SQL的執行耗時分布,将執行耗時分為了7個區間,每分鐘計算一次,分别是:

<code>[0,1]ms 滿足0ms ≤ 執行耗時 ≤ 1ms SQL執行次數占比</code>

<code>(1,2]ms 1ms &lt; 執行耗時 ≤ 2ms SQL執行次數占比</code>

<code>(2,3]ms 2ms &lt; 執行耗時 ≤ 3ms SQL執行次數占比</code>

<code>(3,10]ms 3ms &lt; 執行耗時 ≤ 10ms SQL執行次數占比</code>

<code>(10,100]ms 10ms &lt; 執行耗時 ≤ 100ms SQL執行次數占比</code>

<code>(0.1,1]s 0.1s &lt; 執行耗時 ≤ 1s SQL執行次數占比</code>

<code>&gt;1s 1s &lt; 執行耗時 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的執行耗時。

資料管理DMS 全量SQL診斷:你的SQL是健康的藍色,還是危險的紅色?

SQL清單展示了標明時間範圍内每一類SQL的SQL文本、耗時比例、平均執行耗時、傳回行數等資訊。

耗時比例=(該類SQL執行耗時 執行次數)/(所有SQL執行耗時 總執行次數) * 100%

是以耗時比例越高的SQL,基本上可以簡單的了解為占用MySQL資源越多的SQL,優化該SQL,可以擷取更高的收益比,以下圖的場景為例:

資料管理DMS 全量SQL診斷:你的SQL是健康的藍色,還是危險的紅色?

紅框圈定的SQL,平均耗時是67.78ms,執行次數43次,是以耗時比例是67.18%;

黃框圈定的SQL,雖然平均耗時達到209.99ms,但是因為執行次數隻有一次,是以耗時比例隻有4.84%;

是以在業務模型沒有變化的情況下,優化第一條SQL,可以更好的降低執行個體的資源使用,提升執行個體的穩定性;

點選SQL ID,可以檢視該類SQL執行計劃、性能趨勢、SQL樣本:

資料管理DMS 全量SQL診斷:你的SQL是健康的藍色,還是危險的紅色?

使用者擷取權限并已登入DMS控制台。

目前暫時僅支援雲資料庫 RDS 版 MySQL 執行個體(暫不支援MySQL 5.7)。

登入DMS控制台——&gt;選擇MySQL資料庫——&gt;選擇“性能”菜單——&gt;點選“SQL趨勢”——&gt;點選“全量SQL診斷”

詳細操作步驟如下:

登入DMS控制台後,界面如下圖所示:

資料管理DMS 全量SQL診斷:你的SQL是健康的藍色,還是危險的紅色?

選擇MySQL資料庫,并單擊登入資料庫按鈕進行登入。

如下圖所示,在頂部導航欄菜單中,選擇性能&gt;SQL趨勢:

資料管理DMS 全量SQL診斷:你的SQL是健康的藍色,還是危險的紅色?
資料管理DMS 全量SQL診斷:你的SQL是健康的藍色,還是危險的紅色?