面對日益複雜的資料庫效能調校需求,人工智慧自動 SQL 優化工具應運而生。本文介紹 Quest 公司推出的 SQLTuning for SQL Server,這是 Quest Central 套件中的核心模組之一,能協助 DBA 與開發人員快速找出效能瓶頸、自動產生優化方案,並輔助學習專家級 SQL 撰寫技巧。
Quest Central 是一套整合化、圖形化、跨平台的資料庫管理解決方案,支援同時管理 Oracle、DB2 與 SQL Server。其內建工具涵蓋:
本文重點介紹 SQL Tuning for SQL Server 的操作流程與實戰技巧。
以 SQL Server 內建的 Northwind 範例資料庫為例,示範完整優化流程。
在 Quest Central 主介面的「Database」樹狀結構中選擇「SQL Server」,再從下方「Tools」面板點選「SQLTuning」,開啟「Launch SQL Tuning for SQL Server Connections」對話框。點擊「New Connection」圖示,輸入伺服器資訊並測試連線,最後按「Connect」完成連線建立。
在「Original SQL」文字框輸入待分析的 SQL,例如:
/* 查詢不同售價的相同產品名稱 */ SELECT DISTINCT c.CompanyName, p.ProductName FROM [Order Details] od1, [Order Details] od2, Orders o1, Orders o2, Customers c, Products p WHERE od1.UnitPrice <> od2.UnitPrice AND od1.ProductID = od2.ProductID AND od1.OrderID = o1.OrderID AND od2.OrderID = o2.OrderID AND o1.CustomerID = o2.CustomerID AND o1.CustomerID = c.CustomerID;
選擇目標資料庫後,點擊工具列「Execute」按鈕,SQLTuning 會自動分析執行計畫並顯示結果。
點擊「Optimize Statement」按鈕啟動優化引擎。完成後,工具會列出多個與原始 SQL 語意等價的優化方案(本例產生 34 種方案)。
在方案清單中勾選欲測試的優化語句(預設全選),從「Execute」下拉選單選擇「Execute Selected」執行所有方案。執行完畢後,點擊左側「Tuning Resolution」按鈕,即可看到效能最佳的 SQL,本例中執行時間提升了 52%。
點擊「Compare Scenarios」按鈕,可任選兩條 SQL 進行對比。工具會以不同顏色標示差異,並提供執行計畫對比視圖,幫助開發者理解優化邏輯,進而提升自身 SQL 撰寫能力。
SQLTuning 等 AI 自動 SQL 優化工具的出現,大幅降低了效能調校門檻,節省大量人力與時間。善用這類工具,不僅能快速解決效能問題,更能透過對比學習,養成撰寫高效能 SQL 的良好習慣。