數據庫自治服務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任務中包含的子任務,以及每個子任務的狀態。
單擊子任務操作列的詳情可以查看該子任務結果的詳細信息。
結果詳情介紹
詳情概覽:
索引優化建議:單擊表名前的加號,查看建議詳情、DDL語句和預期收益。
單擊詳情,查看該索引建議的詳細信息。
單擊執行DDL,執行優化后的DDL語句。
單擊驗證優化效果,可以創建驗證優化效果任務,對索引優化建議進行驗證。
說明該功能利用實例的備份恢復,將用戶選定的備份集克隆到系統創建的新實例中,驗證優化效果,對原業務實例無影響。
費用與實例恢復功能創建的新實例收費一致,無額外費用。
完成驗證之后,您需要手動釋放系統創建的新實例。
SQL改寫建議:查看對執行效率不高效的SQL語句提供的改寫建議。
單擊操作列的優化,進入SQL診斷優化頁,查看優化后的SQL、執行計劃和診斷結果。
若您采納診斷建議,單擊SQL診斷優化頁右上角的復制,并將優化后的SQL粘貼到數據庫客戶端或DMS上執行,若不采納診斷建議,可直接單擊取消結束診斷。
TOP SQL:展示資源消耗TOP 10 SQL、平均掃描行數TOP 10 SQL和執行次數TOP 10 SQL。
單擊SQL ID,查看該SQL的詳情。
單擊操作列的優化,進入SQL診斷優化頁,查看優化后的SQL、執行計劃和診斷結果。
若您采納診斷建議,單擊SQL診斷優化頁右上角的復制,并將優化后的SQL粘貼到數據庫客戶端或DMS上執行,若不采納診斷建議,可直接單擊取消結束診斷。
新增SQL:通過對診斷時間和對比時間內SQL的對比,查看新出現的SQL。
單擊SQL ID,查看該SQL的詳情。
單擊操作列的優化,進入SQL診斷優化頁,查看優化后的SQL、執行計劃和診斷結果。
若您采納診斷建議,單擊SQL診斷優化頁右上角的復制,并將優化后的SQL粘貼到數據庫客戶端或DMS上執行,若不采納診斷建議,可直接單擊取消結束診斷。
失敗SQL:查看執行失敗的SQL。
單擊SQL ID,查看該SQL的詳情。
SQL特征分析:查看SQL特征分析,單擊SQL模板數量,可以查看該SQL特征的SQL模板數量詳情。
在SQL模板數量詳情頁,單擊SQL ID,查看該SQL的詳情。
執行變化SQL:按照平均掃描行數、執行次數,查看不同變化區間的SQL。
單擊詳情,查看執行變化趨勢詳情。在執行變化趨勢詳情頁:
單擊SQL ID,查看該SQL的詳情。
單擊操作列的優化,進入SQL診斷優化頁,查看優化后的SQL、執行計劃和診斷結果。
若您采納診斷建議,單擊SQL診斷優化頁右上角的復制,并將優化后的SQL粘貼到數據庫客戶端或DMS上執行,若不采納診斷建議,可直接單擊取消結束診斷。
性能惡化SQL:查看對比后性能惡化的SQL。
單擊SQL ID,查看該SQL的詳情。
單擊操作列的優化,進入SQL診斷優化頁,查看優化后的SQL、執行計劃和診斷結果。
若您采納診斷建議,單擊SQL診斷優化頁右上角的復制,并將優化后的SQL粘貼到數據庫客戶端或DMS上執行,若不采納診斷建議,可直接單擊取消結束診斷。
TOP流量表:查看數據庫中流量TOP 100表的詳細信息。
單擊表名,查看該表的字段和索引。
單擊相關SQL,查看該表相關SQL的詳細信息。