SQL優化工具

2022-04-16 14:52:31 字數 3000 閱讀 1600

sql語句是對資料庫進行操作的惟一途徑,對資料庫系統的效能起著決定性的作用。對於同一條件下的sql語句寫法有很多,其中一些寫法往往對效能又有很大影響。但是每個人掌握sql語言的水平不同,如何才能保證寫出高效能的sql呢?

針對這種情況,人工智慧自動sql優化工具應運而生。現在我就向大家介紹這樣一款工具:sql tuning for sql server。

1. sql tuning 簡介

sql turning 是quest公司出品的quest central軟體中的乙個工具。

quest central(圖1)是一款整合化、圖形化、跨平台的資料庫管理解決方案,可以同時管理 oracle、db2 和 sql server 資料庫。它包含了如下的多個工具:

·資料庫管理(dba)

·資料庫監控(monitoring pack)

·資料庫診斷 (spotlight diagnostics)

·資料庫分析 (database analysis)

·sql優化 (sql tuning)

·空間管理 (space management)

·壓力測試 (load generator)

·資料生成 (data generator)

·pl/sql 開發 (toad)

·專家建議 (knowledge expert)

今天,我們只介紹其中的sql優化 (sql tuning for sql server) 的使用方法。

圖1  quest central介面

2. 使用sql tuning 優化sql

下面我們用sql server自帶的northwind資料庫為例,幫助大家了解如何使用sql tuning優化sql。

(1)建立連線。

在quest central主介面上的「database」樹上選擇「sql server」,然後在下方出現的「tools」框中選擇「sql tuning」選項,開啟「lanch sql tuning for sql server connections」對話方塊(圖2)。我們在這裡建立資料庫伺服器的連線,以後的分析工作都會在它上面完成。

圖2 「建立連線」對話方塊

雙擊「new connection」圖示,在彈出視窗中輸入資料庫的資訊,單擊「ok」,然後單擊「connect」即可。

(2)分析原始sql語句 。

在開啟視窗的「oriangal 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」按鈕,執行原始的sql語句,sql tuning會自動分析sql的執行計畫,並把分析結果顯示到介面上(圖3)。

圖3 分析原始sql語句

(3)優化sql。

現在我們點選工具欄上的「optimize statement」按鈕,讓sql tuning開始優化sql,完成後,可以看到sql tuning產生了34條與原始sql等價的優化方案(圖4)。

圖4 sql優化方案

(4)獲得最優sql。

接下來,我們來執行上面產生的優化方案,以選出效能最佳的等效sql語句。在列表中選擇需要執行的優化方案(預設已全部選中),然後點選工具欄上的「execute」按鈕旁邊的下拉列表,選擇「execute selected」。等到所有sql執行完成後,點選介面左方的「tuning resolution」按鈕,可以看到最優的sql已經出來啦,執行時間竟然可以提高52%!(圖5)

圖5 「tuning resolution」介面

(5)學習書寫專家級的sql語句 。

通過上面的步驟,我們已經可以實現自動優化sql語句,但更重要的是,我們還可以學習如何書寫這樣高效能的sql語句。點選介面左方的「compare scenarios」按鈕,我們可以比較優化方案和原始sql中的任意2條sql語句,sql tuning會將它們之間的不同之處以不同顏色表示出來,還可以在下方的「執行計畫」中,通過比較兩條sql語句的執行計畫的不同,來了解其中的差異(圖6)。

圖6 「compare scenarios」介面

3.小結

sql tuning等人工智慧自動sql優化工具的出現,為我們節省出大量的時間和精力。借助這些工具的幫助,書寫專家級的sql語句將不再是難事。

SQL優化工具

使用說明 解決依賴 python3 ubuntu sudo apt get install python3 python3 pip 如果兩個包都有安裝可跳過此步驟 centos sudo yum install python36 python36 pip 如果兩個包都有安裝可跳過此步驟 執行啟動指令...

SQL優化工具

相關鏈結執行sql語句 耗時34秒左右 linux系統下的測試 3494 note 第1步 對sql解析優化之後得到的sql select ca id as ca id sub id as sub id ca number as ca number sub number as sub number ...

SQL語句優化工具LECCO SQL Expert

簡單來說,sql 語句的優化就是將效能低下的sql語句轉換成達到同樣目的的效能優異的sql語句。人工智慧自動sql優化就是使用人工智慧技術,自動對sql語句進行重寫,找到效能最好的等效sql語句。人工智慧自動sql 優化 隨著人工智慧技術的發展和在 資料庫 優化領域應用的深入,在20世紀90年代末終...