SQL洞察功能可對SQL進行健康情況診斷、效能問題排查。本文介紹在SQL洞察和審計中進行SQL洞察的操作步驟。
前提條件
已在DAS中接入對應的資料庫執行個體,並且接入狀態顯示為串連正常。
執行個體已開啟SQL洞察和審計,詳情請參見開啟SQL洞察和審計。
功能說明
開啟SQL洞察功能可以記錄所有DQL、DML和DDL操作資訊,這些資訊是通過資料庫核心輸出,對系統CPU消耗極低。
支援的資料庫和地區
開啟DAS企業版後,才可以使用該企業版提供的SQL洞察和審計功能,不同的企業版支援的資料庫和地區不同。各個企業版支援的資料庫和地區請參見各個版本支援的資料庫和地區。
注意事項
SQL洞察功能中分析和統計資料(不包括SQL詳細資料)的儲存時間長度為30天。
SQL洞察功能中SQL詳細資料的儲存時間長度與DAS企業版設定的儲存時間長度一致。
關閉SQL洞察和審計功能後,不會對業務產生影響,但是SQL洞察和審計的所有儲存資料會被清空,請將資料匯出並儲存至本地後,再關閉SQL洞察和審計功能。詳情請參見關閉SQL洞察和審計。
掛載到PolarDB-X 1.0(DRDS)的RDS MySQL執行個體執行一條SQL語句時,由於水平分割(分庫分表)原因,會在RDS MySQL執行個體上產生多條SQL日誌。
資料庫執行個體的資料移轉會引起閃斷,遷移期間SQL洞察丟失部分資料是符合預期的。
當資料庫執行個體負載非常高時,會丟失少量記錄,因此通過SQL洞察來統計增量資料可能會出現不準確的情況。
SQL洞察中記錄的SQL語句最大長度為8192位元組,超過部分不再記錄。其中RDS MySQL和PolarDB MySQL版執行個體記錄的SQL語句最大長度受參數控制:
當參數取值小於等於8192位元組時,SQL語句最大長度為參數設定值,超過部分不再記錄。由於資訊採集處理時會增加首碼標註,實際記錄的SQL語句最大長度略小於參數設定值。
當參數取值大於8192位元組時,SQL語句最大長度為8192位元組,超過部分不再記錄。由於資訊採集處理時會增加首碼標註,實際記錄的SQL語句最大長度略小於8192位元組。
說明RDS MySQL和PolarDB MySQL版的5.6、5.7版本由loose_rds_audit_max_sql_size參數控制記錄長度。
RDS MySQL和PolarDB MySQL版的8.0版本由loose_rds_audit_log_event_buffer_size參數控制記錄長度。
對於RDS PostgreSQL執行個體,如果啟用了PgBouncer串連池,通過PgBouncer執行的SQL不會被SQL洞察記錄。
操作步驟
登入DAS控制台。
在左側導覽列中,單擊執行個體監控。
找到目標執行個體,單擊執行個體ID,進入目標執行個體詳情頁。
在左側導覽列單擊 ,然後在右側開啟的頁面單擊SQL洞察。
根據需要選擇對應的功能項:
說明選擇時間範圍時,查詢結束時間需晚於查詢開始時間,且查詢開始時間和查詢結束時間的間隔不能超過1天。您可以查詢資料庫執行個體開啟DAS企業版後,SQL洞察儲存時間長度範圍內任意一天的資料。
區間查看:選擇需要查看SQL洞察結果的時間範圍,您可以查看選定時間範圍內所有SQL的執行耗時分布、執行耗時、執行次數。您還可以在全量請求統計地區內查看選定時間範圍內所有SQL的詳細資料,並可以將其匯出到本地。
說明最多支援匯出1000條SQL日誌,如果您需要擷取時間範圍更大、數量更多的SQL日誌,可以通過搜尋(審計)功能。
對比查看:選擇需要對比SQL洞察結果的時間點,您可以查看所有SQL執行耗時分布、執行耗時、執行次數的對比結果。您還可以在請求對比列表地區內查看詳細的對比結果。
來源統計:選擇需要統計SQL來源的時間範圍,你可以查看選定時間範圍內所有SQL的來源資訊。
SQL Review:對選定區間與基準區間內的資料庫執行個體進行workload分析,並且對資料庫執行個體中啟動並執行SQL進行深度分析,展示資料庫執行個體的索引最佳化建議、SQL改寫建議、TOP SQL、新增SQL、失敗SQL、SQL特徵分析、執行變化SQL、效能惡化SQL和TOP流量表。詳情請參見SQL Review。
相關SQL識別:選擇需要查看的指標,單擊分析按鈕,經過1~5分鐘的時間,即可以定位到在選定時間範圍內和相關指標變化趨勢最相似的SQL及其詳細資料。
重要對於採用冷熱混合儲存的SQL洞察和審計,超過7天的SQL洞察和審計資料採用冷儲存,分析7天前的SQL詳細資料時,系統會建立對應的任務重新進行計算和分析,您可以在工作清單頁面,查看任務進度及歷史任務。
查詢分析超過7天的SQL洞察和審計資料,會按量收取查詢費用,詳情請參見產品計費。
說明
執行耗時分布:展示了選定時間範圍內,所有SQL的執行耗時分布,將執行耗時分為了7個區間,每分鐘計算一次,分別是:
[0,1]ms 是指滿足0ms ≤ 執行耗時 ≤ 1ms SQL執行次數佔比
(1,2]ms 是指1ms < 執行耗時 ≤ 2ms SQL執行次數佔比
(2,3]ms 是指2ms < 執行耗時 ≤ 3ms SQL執行次數佔比
(3,10]ms 是指3ms < 執行耗時 ≤ 10ms SQL執行次數佔比
(10,100]ms 是指10ms < 執行耗時 ≤ 100ms SQL執行次數佔比
(0.1,1]s 是指0.1s < 執行耗時 ≤ 1s SQL執行次數佔比
>1s 是指1s < 執行耗時 SQL執行次數佔比
說明如果一個執行個體的執行耗時分布越接近藍色,代表這個執行個體的SQL健康情況越好,越接近橙色和紅色,代表這個執行個體的SQL健康情況越差。
執行耗時(SQL RT):通過執行耗時,可以方便地查看在選定的時間範圍內,SQL的執行耗時。
全量請求統計:展示了選定時間範圍內每一類SQL的SQL文本、耗時比例、平均執行耗時、執行趨勢等資訊。
說明耗時比例=(該類SQL執行耗時 × 執行次數)/(所有SQL執行耗時 × 總執行次數)× 100%。耗時比例越高的SQL,佔用MySQL資源越多。
SQL ID:單擊SQL ID,您可查看該類SQL效能趨勢、SQL樣本等。
SQL樣本:通過SQL樣本,查看該SQL是由哪個應用端發起。
說明SQL樣本的編碼採用UTF-8字元集。
常見問題
相關API
API | 描述 |
非同步查詢資料庫執行個體SQL洞察結果中執行錯誤的SQL樣本資料,最多返回指定時間範圍內20條資料。 | |
非同步擷取資料庫執行個體SQL洞察結果中指定SQL的執行錯誤次數。 | |
非同步查詢資料庫執行個體SQL洞察結果中產生指定MySQL錯誤碼的SQL ID。 | |
非同步查詢資料庫執行個體SQL洞察結果中的MySQL錯誤碼以及每個錯誤碼對應的SQL數量。 | |
按照訪問來源統計資料庫執行個體SQL洞察結果中的全量請求資料。 | |
按照SQL ID非同步統計資料庫執行個體SQL洞察結果中的全量請求資料。 | |
按照SQL ID查詢資料庫執行個體SQL洞察結果中的SQL樣本資料,最大返回20條樣本資料。 | |
查詢資料庫執行個體7天內SQL洞察和審計的熱儲存資料明細。 |