人工智能自動(dòng)sql優(yōu)化工具--SQLTuning for SQL Server
針對(duì)這種情況,人工智能自動(dòng)SQL優(yōu)化工具應(yīng)運(yùn)而生?,F(xiàn)在我就向大家介紹這樣一款工具:SQLTuning for SQL Server。
1. SQL Tuning 簡介
SQL Turning是Quest公司出品的Quest Central軟件中的一個(gè)工具。
QuestCentral(圖1)是一款集成化、圖形化、跨平臺(tái)的數(shù)據(jù)庫管理解決方案,可以同時(shí)管理Oracle、DB2 和 SQL server 數(shù)據(jù)庫。它包含了如下的多個(gè)工具:
數(shù)據(jù)庫管理(DBA)
數(shù)據(jù)庫監(jiān)控(Monitoring Pack)
數(shù)據(jù)庫診斷 (Spotlight Diagnostics)
數(shù)據(jù)庫分析 (Database Analysis)
SQL優(yōu)化 (SQL Tuning)
空間管理 (Space Management)
壓力測試 (Load Generator)
數(shù)據(jù)生成 (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數(shù)據(jù)庫為例,幫助大家了解如何使用SQLTuning優(yōu)化SQL。
(1)建立連接。
在QuestCentral主界面上的“Database”樹上選擇“SQLServer”,然后在下方出現(xiàn)的“Tools”框中選擇“SQLTuning”選項(xiàng),打開“Lanch SQL Tuning for SQL ServerConnections”對(duì)話框(圖2)。我們在這里建立數(shù)據(jù)庫服務(wù)器的連接,以后的分析工作都會(huì)在它上面完成。
圖2 “建立連接”對(duì)話框
雙擊“NewConnection”圖標(biāo),在彈出窗口中輸入數(shù)據(jù)庫的信息,單擊“OK”,然后單擊“Connect”即可。
(2)分析原始SQL語句 。
在打開窗口的“OriangalSQL”文本框內(nèi)輸入需要分析的原始SQL語句,代碼如下:
/*查詢賣出價(jià)個(gè)不同的同一貨物名稱*/ 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
首先在界面左上方選擇數(shù)據(jù)庫,然后點(diǎn)擊工具欄上的“Execute”按鈕,執(zhí)行原始的SQL語句,SQLTuning會(huì)自動(dòng)分析SQL的執(zhí)行計(jì)劃,并把分析結(jié)果顯示到界面上(圖3)。
圖3 分析原始SQL語句
(3)優(yōu)化SQL。
現(xiàn)在我們點(diǎn)擊工具欄上的“Optimize Statement”按鈕,讓SQLTuning開始優(yōu)化SQL,完成后,可以看到SQLTuning產(chǎn)生了34條與原始SQL等價(jià)的優(yōu)化方案(圖4)。
圖4 SQL優(yōu)化方案
(4)獲得最優(yōu)SQL。
接下來,我們來執(zhí)行上面產(chǎn)生的優(yōu)化方案,以選出性能最佳的等效SQL語句。在列表中選擇需要執(zhí)行的優(yōu)化方案(默認(rèn)已全部選中),然后點(diǎn)擊工具欄上的“Execute”按鈕旁邊的下拉菜單,選擇“ExecuteSelected”。等到所有SQL運(yùn)行完成后,點(diǎn)擊界面左方的“TuningResolution”按鈕,可以看到最優(yōu)的SQL已經(jīng)出來啦,運(yùn)行時(shí)間竟然可以提高52%?。▓D5)
圖5 “Tuning Resolution”界面
(5)學(xué)習(xí)書寫專家級(jí)的SQL語句。
通過上面的步驟,我們已經(jīng)可以實(shí)現(xiàn)自動(dòng)優(yōu)化SQL語句,但更重要的是,我們還可以學(xué)習(xí)如何書寫這樣高性能的SQL語句。點(diǎn)擊界面左方的“CompareScenarios”按鈕,我們可以比較優(yōu)化方案和原始SQL中的任意2條SQL語句,SQLTuning會(huì)將它們之間的不同之處以不同顏色表示出來,還可以在下方的“執(zhí)行計(jì)劃”中,通過比較兩條SQL語句的執(zhí)行計(jì)劃的不同,來了解其中的差異(圖6)。
圖6 “Compare Scenarios”界面
3.小結(jié)
SQLTuning等人工智能自動(dòng)SQL優(yōu)化工具的出現(xiàn),為我們節(jié)省出大量的時(shí)間和精力。借助這些工具的幫助,書寫專家級(jí)的SQL語句將不再是難事。
相關(guān)文章
SQL Server 2016 CTP2.2安裝配置方法圖文教程
這篇文章主要為大家詳細(xì)介紹了SQL Server 2016 CTP2.2安裝配置方法圖文教程 ,感興趣的小伙伴們可以參考一下2016-07-07sqlserver中去除字符串中連續(xù)的分隔符的sql語句
sqlserver中去除字符串中連續(xù)的分隔符的sql語句,需要的朋友可以參考下2012-05-05完美解決MSSQL"以前的某個(gè)程序安裝已在安裝計(jì)算機(jī)上創(chuàng)建掛起的文件操作"
以前裝過sql server,后來刪掉?,F(xiàn)在重裝,卻出現(xiàn)“以前的某個(gè)程序安裝已在安裝計(jì)算機(jī)上創(chuàng)建掛起的文件操作。運(yùn)行安裝程序之前必須重新啟動(dòng)計(jì)算機(jī)”錯(cuò)誤。無法進(jìn)行下去。 現(xiàn)在又遇到了,終于完全搞定.2008-11-11sql server 創(chuàng)建臨時(shí)表的使用說明
這篇文章主要介紹了sql server 創(chuàng)建臨時(shí)表的使用說明,需要的朋友可以參考下2015-11-11SQL SERVER 中構(gòu)建執(zhí)行動(dòng)態(tài)SQL語句的方法
這篇文章主要介紹了SQL SERVER 中構(gòu)建執(zhí)行動(dòng)態(tài)SQL語句的方法,需要的朋友可以參考下2017-06-06Sql Server中清空所有數(shù)據(jù)表中的記錄
我這里介紹的是刪除數(shù)據(jù)庫的所有數(shù)據(jù),因?yàn)閿?shù)據(jù)之間可能形成相互約束關(guān)系,刪除操作可能陷入死循環(huán),二是這里使用了微軟未正式公開的sp_MSForEachTable存儲(chǔ)過程2013-10-10MySQL 數(shù)據(jù)庫 source 命令詳解及實(shí)例
這篇文章主要介紹了MySQL 數(shù)據(jù)庫 source 命令詳解及實(shí)例的相關(guān)資料,需要的朋友可以參考下2017-06-06SQL查詢數(shù)據(jù)庫中符合條件的記錄的總數(shù)
這篇文章主要介紹了SQL查詢數(shù)據(jù)庫中符合條件的記錄的總數(shù)的相關(guān)資料,非常不錯(cuò),具有參考借鑒價(jià)值,需要的朋友可以參考下2016-09-09sql語句優(yōu)化之SQL Server(詳細(xì)整理)
這篇文章主要介紹了sql語句優(yōu)化之SQL Server篇,整理的比較詳細(xì),推薦收藏2014-07-07