資料庫自治服務DAS提供SQL最佳化功能,自動輸出診斷結果、最佳化建議和預期最佳化收益,您可以根據診斷結果確認是否採納建議。本文介紹如何使用SQL最佳化功能。
前提條件
資料庫引擎為:
RDS MySQL
說明暫不支援RDS MySQL的基礎版和叢集版。
MyBase MySQL
PolarDB MySQL版
說明暫不支援PolarDB MySQL版的單節點叢集(原單節點執行個體)。
PolarDB-X 2.0
說明不支援大版本為
5.4.13,小版本在[16415631,16504348]範圍內的PolarDB-X 2.0執行個體。查看PolarDB-X 2.0執行個體版本請參見查看和升級執行個體版本。MongoDB
目標執行個體已經接入DAS,詳情請參見執行個體接入簡介。
目標執行個體的接入狀態為接入正常。
功能限制
不支援對使用X-Engine表的SQL進行診斷和最佳化。
在PolarDB-X中,若通過 Prepared Statements 執行 SQL,慢日誌將分別記錄語句模板(如
select * from test where a = ? and b = ?)和綁定參數(如params: [1, 2])。由於該格式無法直接作為有效 SQL 執行,依賴原始語句的分析或最佳化能力可能受限。
在慢日誌分析頁面建立SQL可視化分析
本功能能夠以直觀的圖形化方式呈現複雜的SQL執行流程。通過圖形介面,您可以清晰地瞭解查詢的執行路徑、各節點的執行效率以及潛在的效能瓶頸,從而在慢SQL最佳化、上線前的代碼審查、自檢等情境中迅速定位問題並進行針對性最佳化。
當前在慢日誌分析頁面進行SQL最佳化,僅支援RDS MySQL 5.6、5.7、8.0 版本、PolarDB MySQL 5.6、5.7、8.0 版本執行個體。
登入DAS控制台。
在左側導覽列中,單擊智能營運中心 > 執行個體監控。
找到目標執行個體,單擊執行個體ID,進入目標執行個體詳情頁。
在左側導覽列中,單擊請求分析 > 慢日誌。
在慢日誌分析頁面:
在慢日誌統計頁簽,單擊目標SQL模板右側操作列的最佳化。
在慢日誌明細頁簽,單擊目標SQL右側操作列的最佳化。
在彈出窗中點擊建立計劃。
選擇執行節點類型。
Standby節點(預設節點):當前執行個體的備庫節點,主要用於常規查詢分析。
事發節點:實際執行 SQL 陳述式的業務節點,適用於問題定位與最佳化。
單擊確認建立,即可建立可視化執行計畫。
可視化執行計畫詳解
在執行個體會話頁面進行SQL最佳化
當前自建MySQL、MongoDB和RDS PostgreSQL資料庫執行個體不支援在執行個體會話頁面進行SQL最佳化。
登入DAS控制台。
在左側導覽列中,單擊智能營運中心 > 執行個體監控。
找到目標執行個體,單擊執行個體ID,進入目標執行個體詳情頁。
在左側導覽列中,單擊執行個體會話。
在執行個體會話地區,選中需要進行SQL最佳化的會話,單擊最佳化。
在彈出的SQL診斷最佳化對話方塊中,查看SQL診斷結果。
若您採納診斷建議,單擊頁面右上方的複製,並將最佳化後的SQL粘貼到資料庫用戶端或DMS上執行,若不採納診斷建議,可直接單擊取消結束診斷。
說明DAS會根據SQL的複雜程度、對應表的資料量、資料庫負載等進行SQL診斷,診斷建議的返回時間可能會超過20秒。完成診斷後,SQL診斷引擎會給出診斷結果、最佳化建議和預期最佳化收益,您可以根據診斷結果確認是否採納建議。
查看SQL診斷歷史
登入DAS控制台。
在左側導覽列中,單擊智能營運中心 > 執行個體監控。
找到目標執行個體,單擊執行個體ID,進入目標執行個體詳情頁。
在左側導覽列中,單擊請求診斷歷史。查看當前執行個體的SQL診斷歷史(如SQL內容、診斷狀態、診斷時間、診斷結果等)。