慢日志問題極大地影響數據庫的穩定性,當數據庫出現負載高、性能抖動等問題時,數據庫管理員或開發首先會查看是否有慢日志在執行。數據庫自治服務DAS(Database Autonomy Service)支持慢日志分析功能,會統計并分析數據庫中執行時間超過閾值的SQL語句,并提供相應的治理方案,幫助您快速定位并解決數據庫性能問題,提高系統的穩定性和可靠性。
前提條件
數據庫引擎為:
RDS MySQL
自建MySQL
不支持RDS MySQL基礎系列。
背景信息
慢日志由數據庫內核輸出,不同數據庫引擎慢日志的配置參數及閾值不相同,具體的配置參數和閾值請參見對應數據庫引擎的官方文檔。對于RDS MySQL,可以在參數設置中修改long_query_time
參數來配置慢日志的閾值。
操作步驟
本文以查看RDS MySQL的慢日志為例。
登錄DAS控制臺。
在左側導航欄中,單擊實例監控。
在左側導航欄中,單擊實例監控。
在左側導航欄中,單擊實例監控。
找到目標實例,單擊實例ID,進入目標實例詳情頁。
在左側導航欄單擊請求分析 > 慢日志。
在慢日志分析頁簽,選擇需要查看的時間段,查看該時間段內慢日志趨勢、慢日志統計和慢日志明細。
說明選擇時間范圍時,查詢結束時間需晚于查詢開始時間,且查詢開始時間和查詢結束時間的間隔不能超過一天,您可以查詢最近一個月內的慢日志信息。
您可以在慢日志趨勢圖中單擊某個時間點,查看該時間點的慢日志統計和慢日志明細。
您可以單擊導出慢日志,將慢日志信息保存到本地查看。
在慢日志統計區域:
單擊目標SQL模板操作列的樣本,查看該SQL的慢日志樣本 。
單擊目標SQL模板操作列的優化,在彈出的SQL診斷優化對話框中,查看SQL診斷結果。
若您采納診斷建議,單擊頁面右上角的復制,并將優化后的SQL粘貼到數據庫客戶端或DMS上執行,若不采納診斷建議,可直接單擊取消結束診斷。
說明DAS會根據SQL的復雜程度、對應表的數據量、數據庫負載等進行SQL診斷,診斷建議的返回時間可能會超過20秒。完成診斷后,SQL診斷引擎會給出診斷結果、優化建議和預期優化收益,您可以根據診斷結果確認是否采納建議。
您也可以單擊專家服務,付費購買數據庫專家服務,為您提供云數據庫產品本身能力范圍之外的專業的數據庫專家服務,主要包括緊急救援、健康診斷、性能調優、護航保障、數據遷移等。
單擊目標SQL模板操作列的限流,在SQL限流頁面配置限流參數,對目標SQ進行限流。詳細操作請參見SQL限流。
在慢日志明細區域,單擊目標SQL操作列的優化和限流,也可對目標SQL進行SQL診斷優化和SQL限流。
常見問題
Q:為什么會出現慢日志記錄的SQL執行完成時間與SQL語句的實際執行時間不同?
A:通常情況下是執行SQL語句修改了時區。慢日志記錄的SQL執行時間的時區,存在會話級別、數據庫級別和系統級別。慢日志時間設置邏輯為:當數據庫存在時區時,以數據庫的時區為準,否則以系統時區為準。當通過SQL語句修改了會話級別的時區時,可能導致慢日志記錄的時區無法正常轉換。
相關文檔
您可以開啟DAS的自動治理功能,以便在數據庫實例出現慢SQL時自動進行優化。