人工智能自動sql優(yōu)化工具--SQLTuning for SQL Server
針對這種情況,人工智能自動SQL優(yōu)化工具應運而生?,F在我就向大家介紹這樣一款工具:SQLTuning for SQL Server。
1. SQL Tuning 簡介
SQL Turning是Quest公司出品的Quest Central軟件中的一個工具。
QuestCentral(圖1)是一款集成化、圖形化、跨平臺的數據庫管理解決方案,可以同時管理Oracle、DB2 和 SQL server 數據庫。它包含了如下的多個工具:
數據庫管理(DBA)
數據庫監(jiān)控(Monitoring Pack)
數據庫診斷 (Spotlight Diagnostics)
數據庫分析 (Database Analysis)
SQL優(yōu)化 (SQL Tuning)
空間管理 (Space Management)
壓力測試 (Load Generator)
數據生成 (Data Generator)
PL/SQL 開發(fā) (TOAD)
專家建議 (Knowledge Expert)
今天,我們只介紹其中的SQL優(yōu)化(SQL Tuning for SQL Server) 的使用方法。
圖1 quest central界面
2. 使用SQL Tuning 優(yōu)化SQL
下面我們用SQLServer自帶的Northwind數據庫為例,幫助大家了解如何使用SQLTuning優(yōu)化SQL。
(1)建立連接。
在QuestCentral主界面上的“Database”樹上選擇“SQLServer”,然后在下方出現的“Tools”框中選擇“SQLTuning”選項,打開“Lanch SQL Tuning for SQL ServerConnections”對話框(圖2)。我們在這里建立數據庫服務器的連接,以后的分析工作都會在它上面完成。
圖2 “建立連接”對話框
雙擊“NewConnection”圖標,在彈出窗口中輸入數據庫的信息,單擊“OK”,然后單擊“Connect”即可。
(2)分析原始SQL語句 。
在打開窗口的“OriangalSQL”文本框內輸入需要分析的原始SQL語句,代碼如下:
/*查詢賣出價個不同的同一貨物名稱*/ select DISTINCT c.CompanyName,p.ProductName from [Order Details] od1,[Order Details] od2 , Orders o1 , Orderso2,Customers c, Products p where od1.UnitPrice<>od2.UnitPrice andod1.ProductID=od2.ProductID and od1.OrderID=o1.OrderID and od2.OrderID=o2.OrderID and o1.CustomerID=o2.CustomerID and o1.CustomerID=C.CustomerID
首先在界面左上方選擇數據庫,然后點擊工具欄上的“Execute”按鈕,執(zhí)行原始的SQL語句,SQLTuning會自動分析SQL的執(zhí)行計劃,并把分析結果顯示到界面上(圖3)。
圖3 分析原始SQL語句
(3)優(yōu)化SQL。
現在我們點擊工具欄上的“Optimize Statement”按鈕,讓SQLTuning開始優(yōu)化SQL,完成后,可以看到SQLTuning產生了34條與原始SQL等價的優(yōu)化方案(圖4)。
圖4 SQL優(yōu)化方案
(4)獲得最優(yōu)SQL。
接下來,我們來執(zhí)行上面產生的優(yōu)化方案,以選出性能最佳的等效SQL語句。在列表中選擇需要執(zhí)行的優(yōu)化方案(默認已全部選中),然后點擊工具欄上的“Execute”按鈕旁邊的下拉菜單,選擇“ExecuteSelected”。等到所有SQL運行完成后,點擊界面左方的“TuningResolution”按鈕,可以看到最優(yōu)的SQL已經出來啦,運行時間竟然可以提高52%?。▓D5)
圖5 “Tuning Resolution”界面
(5)學習書寫專家級的SQL語句。
通過上面的步驟,我們已經可以實現自動優(yōu)化SQL語句,但更重要的是,我們還可以學習如何書寫這樣高性能的SQL語句。點擊界面左方的“CompareScenarios”按鈕,我們可以比較優(yōu)化方案和原始SQL中的任意2條SQL語句,SQLTuning會將它們之間的不同之處以不同顏色表示出來,還可以在下方的“執(zhí)行計劃”中,通過比較兩條SQL語句的執(zhí)行計劃的不同,來了解其中的差異(圖6)。
圖6 “Compare Scenarios”界面
3.小結
SQLTuning等人工智能自動SQL優(yōu)化工具的出現,為我們節(jié)省出大量的時間和精力。借助這些工具的幫助,書寫專家級的SQL語句將不再是難事。
相關文章
Linux環(huán)境中使用BIEE 連接SQLServer業(yè)務數據源
biee11g默認安裝了mssqlserver的數據驅動,不需要在服務器端進行重新安裝,配置過程主要基于ODBC實現,本文主要介紹客戶端為windows、服務端為linux系統(tǒng)的配置過程。2014-07-07
揭秘SQL Server 2014有哪些新特性(1)-內存數據庫
微軟SQL Server 2014提供了眾多激動人心的新功能,但其中最讓人期待的特性之一就是代號為” Hekaton”的內存數據庫了,內存數據庫特性并不是SQL Server的替代,而是適應時代的補充,現在SQL Server具備了將數據表完整存入內存的功能。那么今天我們就先來看看內存數據庫2014-08-08
SQL Server 2012無法連接到WMI提供程序(Cannot connect to WMI provider)解
這篇文章主要介紹了SQL Server 2012無法連接到WMI提供程序(Cannot connect to WMI provider)解決方案,需要的朋友可以參考下2014-07-07
SQL Server誤區(qū)30日談 第4天 DDL觸發(fā)器就是INSTEAD OF觸發(fā)器
DDL觸發(fā)器的實現原理其實就是一個AFTER觸發(fā)器。這個意思是先發(fā)生DDL操作,然后觸發(fā)器再捕捉操作(當然如果你在觸發(fā)器內寫了Rollback,則也可能回滾)2013-01-01
在程序中壓縮sql server2000的數據庫備份文件的代碼
在程序中壓縮sql server2000的數據庫備份文件的代碼...2007-03-03

