SQL Pattern
AnalyticDB for MySQL的即時統計分析功能提供了SQL Pattern指標特性,有效提升智能診斷效率,能夠對相似的SQL進行彙總,並呈現出彙總後的特性。
背景資訊
SQL Pattern是依託於全量且即時的SQL而產生的功能,通過對SQL進行分類、診斷和分析,彙總相似SQL為一類SQL,有效提升智能診斷的效率。同時,SQL Pattern的彙總結果能作為資料庫最佳化的有效依據。針對導致執行個體壓力過大的Bad SQL,使用者還可以通過攔截功能,對其進行攔截,快速恢複執行個體,詳情請參見Persist plan and Query-Blocker。
功能說明
SQL Pattern具備以下功能。
-
Pattern彙總:根據SQL文本,將相似的SQL進行分組。
-
Pattern宏觀統計:建立均值與最值比較以及每個Pattern關鍵計量的總量及其佔比。
-
異常SQL排查:排查出異於歷史的Pattern並提供切入功能,直達問題SQL,擷取診斷結果。
注意事項
僅支援查看過去14天內的SQL Pattern記錄,每次查詢的時間範圍最長為24小時。
操作步驟
登入雲原生資料倉儲AnalyticDB MySQL控制台,在左上方選擇叢集所在地區。在左側導覽列,單擊集群清單,在數倉版頁簽,單擊目的地組群ID。
在左側導覽列,單擊診斷與最佳化。
-
單擊SQL Pattern頁簽。
預設展示最近30分鐘的SQL Pattern。您可以通過SQL關鍵字或時間範圍搜尋SQL Pattern。
SQL Pattern列表各項參數說明如下:
參數
說明
操作
單擊查看詳情,查看特定SQL Pattern的詳細資料。更多資訊,請參見Pattern分析。
用戶名
提交Pattern相關SQL的資料庫使用者名稱。
客戶端IP
提交Pattern相關SQL的用戶端IP地址。
SQL Pattern
SQL Pattern的具體語句。您可以單擊
複製完整的SQL。CPU Cost總量
在查詢時間範圍內,Pattern相關SQL執行時佔用CPU的總時間。括弧中的百分比表示該Pattern執行時佔用CPU的總時間占所有Pattern執行時佔用CPU的總時間的比例,若比例超過30%將自動高亮顯示。
通過觀察Pattern的CPU Cost佔比,可以初步判斷該時段內某類查詢對CPU消耗的影響是否較大,您也可以結合CPU監控指標進一步分析。
峰值內存總量
在查詢時間範圍內,Pattern相關SQL使用的峰值記憶體總和。括弧中的百分比表示該Pattern峰值記憶體總和占所有Pattern峰值記憶體總和的比例,若比例超過30%將自動高亮顯示。
通過觀察Pattern的峰值記憶體佔比,可以初步判斷該時段內某類查詢對記憶體消耗的影響是否較大,您也可以結合計算記憶體使用量率監控指標進行進一步分析。
耗時總量
在查詢時間範圍內,Pattern相關SQL的執行耗時總和。括弧中的百分比表示該Pattern的執行耗時總和占所有Pattern執行耗時總和的比例,若比例超過30%將自動高亮顯示。
通過觀察Pattern的執行耗時佔比,可以初步判斷該時段內某類查詢對查詢RT監控指標增長的影響是否較大,您也可以結合查詢RT監控指標進一步分析。
數據讀取總量
在查詢時間範圍內,Pattern相關SQL讀取資料的總量。括弧中的百分比表示該Pattern讀取資料總量占所有Pattern讀取資料總量的比例,若比例超過30%將自動高亮顯示。
通過觀察Pattern的讀取資料佔比,可以初步判斷該時段內某類查詢的資料讀取量是否較大,您也可以結合表讀取結果資料量監控指標進一步分析。
數據讀取Cost總量
在查詢時間範圍內,Pattern相關SQL讀取資料時佔用CPU的總時間。括弧中的百分比表示該Pattern讀取資料佔用CPU的總時間占所有Pattern讀取資料佔用CPU總時間的比例,若比例超過30%將自動高亮顯示。
通過觀察Pattern的讀取資料佔比,可以初步判斷該時段內某類查詢的讀取資料時佔用CPU的總時間是否較大。如果讀取資料時佔用CPU的總時間增大,則會影響預留節點(儲存節點)的CPU使用率,您也可以結合預留節點CPU監控指標或原儲存節點CPU監控指標進一步分析。
平均CPU Cost
在查詢時間範圍內,Pattern相關SQL執行時佔用CPU時間的均值。
最大CPU Cost
在查詢時間範圍內,Pattern相關SQL執行時佔用CPU時間的最大值。
平均表讀取CPU Cost
在查詢時間範圍內,Pattern相關SQL讀取資料時佔用CPU時間的均值。
最大表讀取CPU Cost
在查詢時間範圍內,Pattern相關SQL的讀取資料時佔用CPU時間的最大值。
執行次數
在查詢時間範圍內,Pattern相關SQL的執行次數。如果執行個體出現資源水位突增的情況,使用者可以通過執行次數排序,查看執行個體運行異常時段哪些SQL執行次數較多,並進一步分析這些SQL執行次數突增是否正常。
失敗次數
在查詢時間範圍內,Pattern相關SQL的執行失敗次數。
平均總耗時
在查詢時間範圍內,Pattern相關SQL的平均查詢耗時,單位毫秒(ms)。
最大總耗時
在查詢時間範圍內,Pattern相關SQL的最大查詢耗時,單位毫秒(ms)。通過比較最大總耗時和平均查詢時間,可以瞭解指定Pattern的耗時增加是否受到其他SQL的影響。如果在執行個體運行正常時段內最大總耗時和平均查詢時間接近,那麼在執行個體運行異常時段當前pattern的耗時增加可能是受到了其他SQL的影響。
平均執行耗時
在查詢時間範圍內,Pattern相關SQL的平均執行耗時,單位毫秒(ms)。
最大執行耗時
在查詢時間範圍內,Pattern相關SQL的最大執行耗時,單位毫秒(ms)。執行耗時的定義,詳見查詢監控圖和SQL列表介紹。
平均峰值內存
在查詢時間範圍內,Pattern相關SQL的平均峰值記憶體,單位Byte。
最大峰值內存
在查詢時間範圍內,Pattern相關SQL的最大峰值記憶體,單位Byte。通過比較最大峰值記憶體和平均峰值記憶體,您可以判斷指定SQL使用的記憶體資源的穩定性。如果最大峰值記憶體遠大於平均峰值記憶體,說明當前Pattern的SQL可能存在掃描資料量增加或者執行計畫改變的問題,可以單擊查看詳情,在查詢詳情頁面,查看SQL列表進一步定位原因。
平均掃描量
在查詢時間範圍內,Pattern相關SQL的平均掃描量,單位MB。
最大掃描量
在查詢時間範圍內,Pattern相關SQL的最大掃描量,單位MB。通過比較最大掃描量和平均掃描量,可以判斷同類Pattern的SQL的資料讀取量的穩定性。如果出現最大掃描量遠大於平均掃描量的情況,說明資料讀取量不穩定,則需判斷是否為正常情況。
錶名
SQL Pattern掃描的資料庫表。
Pattern分析
Pattern分析頁面以圖形化的方式展示SQL在時間維度上的執行次數、查詢耗時、執行耗時、掃描量以及峰值記憶體等重要指標,其中查詢耗時、執行耗時、掃描量和峰值記憶體指標分別提供了最大值和平均值,方便使用者進行比較和分析。SQL列表提供了當前Pattern在分析時段內的所有相關的SQL,您可以單擊診斷,查看SQL的診斷結果和執行計畫,具體操作,參見使用執行計畫分析查詢。
在SQL Pattern頁簽的SQL Pattern列表中,單擊查看詳情,進入Pattern分析頁面,您可以查看SQL Pattern多個指標的時序變化和SQL列表。