數(shù)據(jù)庫自治服務DAS(Database Autonomy Service)為RDS MySQL提供查詢治理功能,通過離線數(shù)據(jù)分析技術,在每天凌晨1點將全部實例在前一天產生的慢SQL進行統(tǒng)計分析和自動打標,幫助您對慢SQL進行自動分類和劃分治理優(yōu)先級。同時提供治理建議和數(shù)據(jù)導出功能。
前提條件
實例為如下版本:
RDS MySQL 8.0 高可用系列或集群系列
RDS MySQL 5.7 高可用系列或集群系列
RDS MySQL 5.6 高可用系列
RDS MySQL 5.5 高可用系列
當前支持中國內地、中國香港和新加坡地域的數(shù)據(jù)庫實例。
說明中國香港和新加坡地域的數(shù)據(jù)庫實例于2023年04月01日起支持查詢治理功能。
限制約束
由于是T+1離線分析,當天打標無需優(yōu)化,第二天才能看到推薦優(yōu)化SQL數(shù)值變化。
DAS預定義的SQL標簽暫不支持關閉。
每個數(shù)據(jù)庫實例只統(tǒng)計分析執(zhí)行次數(shù)前200的慢SQL,慢SQL模板數(shù)最大為200。
名詞解釋
名詞 | 解釋 |
推薦優(yōu)化SQL | 從總體的慢SQL中,排除無需優(yōu)化SQL,剩下的就是推薦優(yōu)化SQL。 |
無需優(yōu)化SQL | 包含DAS自動標記為DAS忽略的SQL,以及用戶人工標記為無需優(yōu)化的SQL。 |
DAS忽略 | DAS自動打標無需優(yōu)化,例如以 |
操作步驟
訪問RDS實例列表,在上方選擇地域,然后單擊目標實例ID。
在左側導航欄中,選擇自治服務 > 慢SQL。
單擊查詢治理頁簽。
在查詢治理頁,查看查詢治理結果。
您可以通過設置時間、地域、數(shù)據(jù)庫引擎,輸入目標實例ID,查看指定實例的查詢治理結果。
查詢治理結果概覽:查看系統(tǒng)打標分類后的結果數(shù)據(jù)。
說明只統(tǒng)計開啟DAS企業(yè)版實例的執(zhí)行失敗SQL次數(shù)。
查詢治理趨勢:查看所選時間范圍內查詢治理結果的變化趨勢。
TOP數(shù)據(jù):查看實例紅榜和實例黑榜。
實例黑榜:慢SQL執(zhí)行次數(shù)從高到低排序,幫助您快速定位問題最嚴重的實例。
實例紅榜:慢SQL執(zhí)行次數(shù)變化量從低到高排序,負數(shù)表示慢SQL執(zhí)行次數(shù)減少量(優(yōu)化效果好),正數(shù)表示慢SQL執(zhí)行次數(shù)增加量,幫助您快速定位治理效果最好的實例。
DAS推薦您重點關注推薦優(yōu)化SQL的紅黑榜。
待優(yōu)化SQL:您可以設置篩選條件,過濾出需要治理的SQL語句。
說明支持通過DB名稱、SQL關鍵字、規(guī)則標簽和數(shù)據(jù)庫用戶名進行篩選,四者之間是邏輯與的關系。
多個DB名稱之間使用英文逗號(,)分隔,邏輯關系為或。
多個SQL關鍵字之間使用空格分隔,邏輯關系為與。
多個數(shù)據(jù)庫用戶名之間使用英文逗號(,)分隔,邏輯關系為或。
規(guī)則標簽支持多選,多個規(guī)則之間邏輯關系為或。
單擊目標SQL樣本操作列的建議,查看詳細的治理建議。
單擊目標SQL樣本操作列的打標,對此SQL進行手動打標。標簽的具體含義請參見手動打標標簽。
您也可以勾選需要手動打標的SQL,進行批量打標。
單擊目標SQL樣本操作列的樣本,查看此SQL的慢日志樣本詳情。
單擊目標SQL樣本操作列的趨勢,查看此SQL的慢日志分析詳情。詳細的慢日志分析介紹及操作請參見慢日志分析。
您可以根據(jù)需要導出和分享待優(yōu)化的SQL數(shù)據(jù),具體操作請參見最佳實踐。
失敗SQL:您可以設置篩選條件,過濾出需要查看的SQL語句。
說明只統(tǒng)計開啟DAS企業(yè)版實例的失敗SQL。
支持通過DB名稱和SQL關鍵字進行篩選,兩者是邏輯與的關系。
多個DB名稱之間使用英文逗號(,)分隔,邏輯關系為或。
多個SQL關鍵字之間使用空格分隔,邏輯關系為與。
單擊目標SQL樣本操作列的樣本,查看此SQL的樣本詳情。
最佳實踐
使用標簽區(qū)分是否需要優(yōu)化SQL
治理核心邏輯是將總體慢SQL分為無需優(yōu)化的慢SQL和推薦優(yōu)化SQL兩類,您可根據(jù)如下SQL標簽,快速篩選并按優(yōu)先級治理。
ID | 標簽名稱 | 級別 | 推薦重點關注 | 描述 |
NEW_SQL | 新增慢SQL | 警告 | ?? | 相比最近一周新增的慢SQL。 |
DAS_IGNORE | DAS忽略 | 提示 | ? | DAS自動打標無需優(yōu)化,例如以 |
FUZZY_LIKE | LIKE模糊查詢 | 提示 | ? |
|
HAS_EXPR | 包含表達式 | 提示 | ? | 包含表達式計算,參與計算的列無法使用索引。 |
LARGE_IN_LIST | 大列表查詢 | 提示 | ? |
|
SELECT_STAR | SELECT全列查詢 | 提示 | ? |
|
INDEX_ADVISOR | 索引建議 | 提示 | ?? | 新建索引建議,加速SQL執(zhí)行 。 |
COMPLEX_JOIN | 復雜JOIN | 提示 | ? | 超過三個表禁止 |
CROSS_DB | 跨庫查詢 | 提示 | ? | 跨實例遷移庫表的時候,會產生跨庫查詢不可用的風險。 |
SUBQUERY | 包含子查詢 | 提示 | ? | 包含子查詢,可以考慮采用 |
DEEP_PAGING | 深度翻頁 | 警告 | ? | 使用 |
WITHOUT_PREDICATE | 無謂詞 | 警告 | ?? | 包含無謂詞的語句,請檢查是否涉及全表掃描。 |
NULL_COMPARE | NULL匹配錯誤 | 警告 | ? | 使用 |
COUNT_NOT_STAR | COUNT不規(guī)范 | 警告 | ? | 請使用 |
LARGE_ROWS_EXAMINED | 掃描行多 | 提示 | ? | 平均掃描行超過50000,掃描行數(shù)越大,越消耗數(shù)據(jù)庫資源,不僅本身的SQL慢,還可能影響其他SQL執(zhí)行。 說明 請考慮增加更好的SQL過濾條件。 |
LARGE_ROWS_SENT | 返回行多 | 提示 | ? | 平均返回行超過5000,一次返回太多數(shù)據(jù),請考慮減少返回行數(shù)。 |
NO_ADVICE | 無建議 | 提示 | ? | 暫無分析建議。 |
PERIOD_SQL | 周期性 | 提示 | ? | 每天固定時間執(zhí)行。 |
DAS推薦您重點關注推薦優(yōu)化SQL,您可配合下表,打標無需優(yōu)化的SQL,持續(xù)降低推薦優(yōu)化SQL數(shù)量,如下SQL標簽支持用戶手動打標。
ID | 標簽名稱 | 級別 | 描述 |
USER_IGNORE | 無需優(yōu)化 | 提示 | 打標無需優(yōu)化,第二天就不會被統(tǒng)計到推薦優(yōu)化SQL中。 |
DAS_IMPORTANT | 重要SQL | 提示 | 打標重要SQL。 |
DAS_NOT_IMPORTANT | 不重要SQL | 提示 | 打標不重要SQL。 |
DAS_IN_PLAN | 排期優(yōu)化 | 提示 | 打標排期優(yōu)化。 |
數(shù)據(jù)導出
您可通過新建導出任務,將當前看到的SQL明細的全部數(shù)據(jù)導出下載。
說明導出任務的數(shù)據(jù)保存3天。
您可以通過設置不同的篩選條件(不同的實例、不同的規(guī)則等),新建不同的下載任務,安排不同的負責人分別優(yōu)化。
您也可以選中多個SQL記錄,導出任務將只導出被選中SQL。
數(shù)據(jù)分享
為方便您快速把經過條件篩選后的慢SQL分享給對應的負責人,DAS提供兩種分享功能:
您可以選中多個SQL記錄,點擊批量分享按鈕,系統(tǒng)生成短鏈接,有DAS控制臺權限的用戶點擊訪問后,將只會看到您選中的SQL記錄。
您也可以單擊導出旁邊的分享按鈕,系統(tǒng)生成短鏈接,有DAS控制臺權限的用戶單擊訪問后,將會看到您當前看到的全部明細數(shù)據(jù)(無需您再次設置篩選條件)。