資料庫自治服務DAS(Database Autonomy Service)提供SQL Review功能,本文介紹如何在SQL洞察和審計的SQL洞察功能中進行SQL Review。
前提條件
-
已在DAS中接入對應的資料庫執行個體,並且接入狀態顯示為連接正常。
-
執行個體已開啟SQL洞察和審計,詳情請參見開啟SQL洞察和審計。
支援的資料庫和地區
開啟DAS企業版後,才可以使用該企業版提供的SQL洞察和審計功能,不同的企業版支援的資料庫和地區不同。各個企業版支援的資料庫和地區請參見各個版本支援的資料庫和地區。
功能介紹
SQL Review功能對選定區間與基準區間內的資料庫執行個體進行workload分析,並且對資料庫執行個體中啟動並執行SQL進行深度分析,展示資料庫執行個體的索引最佳化建議、SQL改寫建議、TOP SQL、新增SQL、失敗SQL、SQL特徵分析、執行變化SQL、效能惡化SQL和TOP流量表。
SQL Review功能提供全域SQL負載分析能力(包括SQL樣本、平均執行耗時,耗時比例,執行次數比例,平均掃描行數,總執行次數,首次出現時間等內容的分析),輔助使用者快速定位到資料庫執行個體中的可疑SQL(資源消耗過大、趨勢變化過大、效能惡化、執行失敗、新增SQL等),並對可疑SQL進行分析,給出相應的最佳化建議。
功能模組介紹:
-
索引優化建議:以表為單位,展示使用者選擇時間段內SQL的索引最佳化建議,包括索引列、DDL語句、預期收益等。
-
SQL 改寫建議:對執行效率不高效的SQL語句提供相應的改寫建議。
-
TOP SQL:分別展示資源消耗TOP 10 SQL、平均掃描行數TOP 10 SQL、執行次數TOP 10 SQL,協助使用者快速定位對資料庫影響較大的SQL。
-
新增SQL:通過對診斷時間和對比時間內SQL的對比,展示新出現的SQL,協助使用者確認變更是否符合業務預期。
-
失敗SQL:執行失敗的SQL列表,展示包括SQL ID、SQL樣本、資料庫、錯誤碼、錯誤次數。
-
SQL特徵分析:根據SQL文本進行特徵分析,並按照SQL類型對各個SQL特徵進行分類統計。
-
執行變化SQL:分別按照平均掃描行數、執行次數的變動率對SQL進行統計,展示不同變動率範圍內的SQL模板數量、耗時比例、總執行次數、執行次數比例。
-
性能惡化SQL:基於執行變化SQL,篩選出平均掃描行數、總執行次數或平均耗時超過指定變動率的SQL。
-
TOP流量表:基於資料庫中表的流量情況展示相應資訊,包括表名、資料庫名、相關SQL模板數、總執行次數、Select次數、Insert次數、Update次數、Delete次數和平均執行耗時等資訊。
操作步驟
登入DAS控制台。
在左側導覽列中,單擊智能營運中心 > 執行個體監控。
找到目標執行個體,單擊執行個體ID,進入目標執行個體詳情頁。
-
在左側導覽列單擊,然後在右側開啟的頁面單擊。
-
在SQL Review頁面根據需要選擇對應的操作。
-
建立SQL Review
單擊建立SQL Review,在建立SQL Review視窗配置如下參數後,單擊確定,發起SQL Review。
說明同一個資料庫執行個體只能有一個正在執行SQL Review任務。
參數
說明
SQL Review名稱
SQL Review任務的名稱。
選擇庫
選擇資料庫執行個體中需要進行SQL Review的資料庫。
診斷時間範圍
進行診斷的時間範圍。
說明-
診斷的時間必須是開啟DAS企業版後且在SQL洞察儲存時間長度範圍內。
-
為了保證SQL Review的準確率,建議診斷的時間範圍大於24小時;最大不能超過8天,最小不能小於1小時。
-
對同一時間的SQL,不能多次診斷。
對比時間範圍
進行對比的時間範圍。
說明-
對比的時間必須是開啟DAS企業版後且在SQL洞察儲存時間長度範圍內。
-
診斷時間和對比時間的長度必須一致,且不能重疊。
-
對比時間要早於診斷時間。
診斷內容
診斷的內容,根據需要選擇一個或者多重專案進行診斷。
-
索引建議
-
SQL 改寫建議
-
新增SQL
-
失敗SQL
-
TOP SQL
-
SQL特徵分析
-
執行變化SQL
-
TOP流量表
-
-
查看SQL Review結果
在頁面右上方選擇時間範圍,單擊查看,即可查看指定時間範圍內發起的SQL Review任務。
說明選擇時間範圍時,查詢結束時間需晚於查詢開始時間,且查詢開始時間和查詢結束時間的間隔最大不能超過7天。您可以查詢資料庫執行個體6個月內的SQL Review任務。
-
單擊操作列的詳情,可以查看該任務結果的詳細資料。具體請參見結果詳情介紹。
-
單擊操作列的下載,可以將該任務的結果下載到本地。
-
單擊操作列的分享,可以將該任務的結果分享給具有DAS控制台許可權的使用者。
-
單擊任務名前的加號,可以查看SQL Review任務中包含的子任務,以及每個子任務的狀態。
單擊子任務操作列的詳情可以查看該子任務結果的詳細資料。
-
-
結果詳情介紹
-
詳情概覽:SQL Review 概覽面板頂部展示診斷時間與對比時間區間,右側以指標卡片匯總診斷結果,包括新增索引建議、刪除索引建議、SQL改寫建議、預計效能提升、預計回收空間、失敗SQL、新增SQL和效能惡化SQL數量。
-
索引優化建議:單擊表名前的加號,查看建議詳情、DDL語句和預期收益。索引最佳化建議頁面頂部包含多個Tab頁簽(索引最佳化建議、SQL改寫建議、TOP SQL、新增SQL、失敗SQL、SQL特徵分析等)。索引推薦地區提供展開列表/摺疊列表切換和僅展示推薦程度高的建議篩選項,以及匯出DDL按鈕。主體表格列包括表名、庫名和操作,展開後可查看建議類型(如建立索引)、DDL語句(如
ALTER TABLE xxx ADD INDEX idx_name (action,status,time))和預期效能提升百分比,摺疊行提供最佳化前後的索引對比連結。-
單擊詳情,查看該索引建議的詳細資料。
-
單擊執行DDL,執行最佳化後的DDL語句。
-
單擊驗證最佳化效果,可以建立驗證最佳化效果任務,對索引最佳化建議進行驗證。
說明-
該功能利用執行個體的備份復原,將使用者選定的備份組複製到系統建立的新執行個體中,驗證最佳化效果,對原業務執行個體無影響。
-
費用與執行個體復原功能建立的新執行個體收費一致,無額外費用。
-
完成驗證之後,您需要手動釋放系統建立的新執行個體。
在彈出的建立驗證最佳化效果任務對話方塊中,依次完成配置任務和購買資源兩個步驟。在配置任務步驟中,填寫任務描述,選擇備份組,並輸入高許可權帳號和高許可權密碼。
-
-
-
SQL 改寫建議:查看對執行效率不高效的SQL語句提供的改寫建議。
單擊操作列的優化,進入SQL診斷最佳化頁,查看最佳化後的SQL、执行计划和診斷結果。
若您採納診斷建議,單擊SQL診斷最佳化頁右上方的複製,並將最佳化後的SQL粘貼到資料庫用戶端或DMS上執行,若不採納診斷建議,可直接單擊取消結束診斷。
該面板表格列包含SQL ID、SQL樣本、改寫語句、平均執行耗時(ms)、耗時比例、平均掃描行數和操作。
-
TOP SQL:展示資源消耗TOP 10 SQL、平均掃描行數TOP 10 SQL和執行次數TOP 10 SQL。
-
單擊SQL ID,查看該SQL的詳情。
-
單擊操作列的優化,進入SQL診斷最佳化頁,查看最佳化後的SQL、执行计划和診斷結果。
若您採納診斷建議,單擊SQL診斷最佳化頁右上方的複製,並將最佳化後的SQL粘貼到資料庫用戶端或DMS上執行,若不採納診斷建議,可直接單擊取消結束診斷。
資源消耗TOP 10 SQL 頁簽的表格列包括 SQL ID、SQL樣本、平均執行耗時(ms)、耗時比例、總執行次數、執行次數比例、平均掃描行數、總耗時(含趨勢面積圖)、SQL特徵和操作。
-
-
新增SQL:通過對診斷時間和對比時間內SQL的對比,查看新出現的SQL。
-
單擊SQL ID,查看該SQL的詳情。
-
單擊操作列的優化,進入SQL診斷最佳化頁,查看最佳化後的SQL、执行计划和診斷結果。
若您採納診斷建議,單擊SQL診斷最佳化頁右上方的複製,並將最佳化後的SQL粘貼到資料庫用戶端或DMS上執行,若不採納診斷建議,可直接單擊取消結束診斷。
新增SQL列表展示每條SQL的SQL樣本、平均執行耗時(ms)、耗時比例、執行次數比例、平均掃描行數、總執行次數和首次出現時間等效能指標。
-
-
失敗SQL:查看執行失敗的SQL。
單擊SQL ID,查看該SQL的詳情。
該列表包含SQL ID、SQL樣本、DB、錯誤碼和錯誤次數列。
-
SQL特徵分析:查看SQL特徵分析,單擊SQL模板數量,可以查看該SQL特徵的SQL模板數量詳情。
在SQL模板數量詳情頁,單擊SQL ID,查看該SQL的詳情。
SQL 特徵分析面板頂部以水平堆疊橫條圖展示 SQL 類型分布(Select、Update、Insert、Delete、Other 及各自佔比),下方表格按 SQL 特徵分類(無謂詞、等值請求、範圍請求、排序請求、彙總請求、未分類)列出 SQL 模板數量、平均執行耗時(ms)、耗時比例、執行次數比例、平均掃描行數、總執行次數等指標。
-
執行變化SQL:按照平均掃描行數、執行次數,查看不同變化區間的SQL。
單擊詳情,查看執行變化趨勢詳情。在執行變化趨勢詳情頁:
-
單擊SQL ID,查看該SQL的詳情。
-
單擊操作列的優化,進入SQL診斷最佳化頁,查看最佳化後的SQL、执行计划和診斷結果。
若您採納診斷建議,單擊SQL診斷最佳化頁右上方的複製,並將最佳化後的SQL粘貼到資料庫用戶端或DMS上執行,若不採納診斷建議,可直接單擊取消結束診斷。
該面板篩選和對比時間相比耗時比例前100且平均掃描行數或平均執行耗時增長超過20%的SQL,變化區間分為(-100, 0]、(0, 20]、(20, 50]、(50, 100]、(100, +∞]五檔,表格列包含SQL模板數量、耗時比例、總執行次數和執行次數比例。
-
-
性能惡化SQL:查看對比後效能惡化的SQL。
-
單擊SQL ID,查看該SQL的詳情。
-
單擊操作列的優化,進入SQL診斷最佳化頁,查看最佳化後的SQL、执行计划和診斷結果。
若您採納診斷建議,單擊SQL診斷最佳化頁右上方的複製,並將最佳化後的SQL粘貼到資料庫用戶端或DMS上執行,若不採納診斷建議,可直接單擊取消結束診斷。
該頁面展示耗時比例前100且平均掃描行數或平均執行耗時增長超過20%的SQL。可通過篩選條件(如平均掃描行數大於指定閾值)過濾結果,表格包含SQL ID、SQL樣本、耗時比例、平均執行耗時(ms)、總執行次數、平均掃描行數等列,並對比兩個時間段的指標變化。
-
-
TOP流量表:查看資料庫中流量TOP 100表的詳細資料。
-
單擊表名,查看該表的欄位和索引。
-
單擊相關SQL,查看該表相關SQL的詳細資料。
流量表中展示每張表的相關SQL模板數、總執行次數、Select次數、Insert次數、Update次數、Delete次數及平均執行耗時(ms)等統計資訊。
-