DBA的五款優(yōu)秀SQL查詢優(yōu)化工具
一般來說,SQL查詢優(yōu)化器分析給定查詢的許多選項(xiàng),預(yù)估每個(gè)選項(xiàng)的成本,最后選擇成本最低的選項(xiàng)。如果查詢優(yōu)化器選擇了錯(cuò)誤的計(jì)劃,則性能差異可能從幾毫秒到幾分鐘。幸運(yùn)的是,現(xiàn)在有許多第三方SQL查詢優(yōu)化工具可以自動(dòng)優(yōu)化每個(gè)SQL查詢。這些工具極大地簡化了開發(fā)人員和數(shù)據(jù)庫管理員的工作,因?yàn)樗麄兲峁┝苏_的查詢調(diào)優(yōu)建議和索引建議。現(xiàn)在我們已經(jīng)知道了SQL查詢優(yōu)化器的重要性,以下推薦幾款不錯(cuò)的工具。
1.Solarwinds數(shù)據(jù)庫性能分析器
Solarwinds的數(shù)據(jù)庫性能分析器是一種用于監(jiān)控,分析和調(diào)整數(shù)據(jù)庫和SQL查詢性能的高級(jí)工具。其突出的特點(diǎn)包括:

- 實(shí)時(shí)識(shí)別數(shù)據(jù)庫問題。
- 跟蹤每個(gè)活動(dòng)會(huì)話中的每個(gè)查詢,并識(shí)別導(dǎo)致查詢執(zhí)行和性能延遲的區(qū)域。
- 無論是內(nèi)部部署,虛擬化還是云端,都可以從單個(gè)視圖監(jiān)控和優(yōu)化。
- 捕獲響應(yīng)時(shí)間和服務(wù)器統(tǒng)計(jì)信息的多個(gè)指標(biāo),并將它們存儲(chǔ)在數(shù)據(jù)倉庫存儲(chǔ)庫中以供將來分析。
- 在受監(jiān)控的服務(wù)器上不安裝任何軟件或代理,因此在受監(jiān)控的實(shí)例上所放的負(fù)載不到1%。
- 通過三到四次點(diǎn)擊,就可以了解根本原因
- 關(guān)聯(lián)SQL語句,上下文,系統(tǒng),存儲(chǔ)運(yùn)行狀況,等待類型和響應(yīng)時(shí)間,以便全面了解查詢的性能。
- 主動(dòng)監(jiān)控系統(tǒng)并在問題開始影響用戶之前識(shí)別問題。
- 標(biāo)識(shí)SQL塊及其對(duì)應(yīng)的鎖。
- 自動(dòng)創(chuàng)建可視化報(bào)告,通過電子郵件將其發(fā)送到指定的地址。
- 通過電子郵件或SNMP主動(dòng)發(fā)出警報(bào)。
- 與Orion平臺(tái)完美集成。
- 從單個(gè)界面提供跨供應(yīng)商數(shù)據(jù)庫支持。適用于不同的數(shù)據(jù)庫,如SQL Server,Oracle,MySQL,MariaDB,AWS Aurora,DB2和ASE等。
2.Redgate SQL Monitor
Redgate SQL Monitor可以主動(dòng)監(jiān)控SQL服務(wù)器并報(bào)告問題。Redgate的一些重要功能包括:

- 使你可以選擇為每個(gè)位置安裝一個(gè)基本監(jiān)控器。這意味著,可以在一個(gè)界面中獲取所有數(shù)據(jù)中心的報(bào)告,而無需在每個(gè)位置安裝單獨(dú)的UI。通過這種方式,可以通過單個(gè)SQL監(jiān)控儀表板監(jiān)控所有位置的性能,因此不會(huì)出現(xiàn)安全性損失。
- 一個(gè)基礎(chǔ)監(jiān)控器可以覆蓋200多臺(tái)服務(wù)器。
- 所有警報(bào)都是收件箱中的單個(gè)可擴(kuò)展對(duì)象,因此可以將所有必要的信息聚集在一起。此外,它還可以避免使收件箱混亂。
- 在發(fā)生死機(jī)時(shí)發(fā)出警報(bào),以便輕松恢復(fù)任何丟失的進(jìn)程并采取措施減少未來的發(fā)生。
- 創(chuàng)建高級(jí)圖表,使你可以快速瀏覽SQL查詢的狀態(tài)。
- 查詢歷史記錄圖有助于查看查詢的影響。這使得最早識(shí)別問題變得容易。
- 阻止過程顯示在概述頁面中,以便于閱讀。
- 標(biāo)識(shí)執(zhí)行部署的工具并在時(shí)間軸上顯示相同的工具。
- 可以通過import-export API批量加載詳細(xì)信息。
- 識(shí)別錯(cuò)誤的數(shù)據(jù)庫部署。
3.Idera DB Optimizer
Idera DB Optimizer是一個(gè)綜合工具,可以調(diào)整性能不佳的SQL代碼,并幫助盡早識(shí)別問題及其根本原因。Idera具有以下功能:

- 通過單個(gè)通用接口在所有主要RDBMS(如Oracle,Sybase,DB2和SQL Server)上調(diào)整SQL代碼。
- 減少培訓(xùn)需求并簡化企業(yè)內(nèi)不同團(tuán)隊(duì)之間的協(xié)作。
- 此工具附帶的向?qū)?huì)自動(dòng)建議解決方案以改進(jìn)優(yōu)化。
- 顏色編碼的索引分析視圖顯示缺少的索引并提供修復(fù)相同的建議。
- 其獨(dú)特的Visual SQL Tuning圖將基于文本的SQL代碼轉(zhuǎn)換為圖形SQL圖。這有助于DBA了解SQL查詢對(duì)數(shù)據(jù)庫的影響。
- 提供等待時(shí)間分析的圖形表示,以識(shí)別較差的數(shù)據(jù)庫性能。
- 允許跨進(jìn)程共享信息。
- 負(fù)載測試驗(yàn)證針對(duì)數(shù)據(jù)庫的現(xiàn)有和備用SQL查詢的性能
- 幫助并行運(yùn)行多個(gè)查詢。
- 建議進(jìn)行適當(dāng)?shù)腟QL重寫。
4.EverSQL
EverSQL是一個(gè)在線SQL查詢優(yōu)化器,它提供了監(jiān)控SQL查詢性能的最簡單方法。EverSQL具有以下功能:

- 輕松優(yōu)化SQL查詢
- 簡單易用
- 配有直觀的界面
- 無需下載或安裝。
- 只需上傳或輸入查詢,上傳架構(gòu)并獲得優(yōu)化的查詢結(jié)果
- 不需要任何數(shù)據(jù)庫訪問權(quán)限。
- 支持MySQL,MariaDB和PerconaDB數(shù)據(jù)庫。
- 提供最佳索引建議。
5.dbForge Studio
dbForge Studio是一個(gè)專為集成開發(fā)環(huán)境設(shè)計(jì)的強(qiáng)大工具。它有助于開發(fā),管理,分析和報(bào)告SQL查詢和性能。dbForge Studio具有以下功能:

- 以自動(dòng)代碼完成的形式提供SQL編程輔助,只需幾次擊鍵即可創(chuàng)建SQL語句,SQL格式化可遵循普遍接受的編程標(biāo)準(zhǔn),T-SQL分析器可通過可配置規(guī)則提高代碼質(zhì)量,SQL代碼段可存儲(chǔ)和重用重復(fù)的代碼片段和高級(jí)代碼導(dǎo)航。
- 完全控制你的服務(wù)器。
- 分析SQL索引的狀態(tài)并修復(fù)索引碎片問題。
- 允許以可視方式立即重建和重組SQL索引。
- 實(shí)現(xiàn)自動(dòng)化單元測試
- 優(yōu)化慢查詢
- 每個(gè)查詢都會(huì)與其成本一起進(jìn)行分析和顯示。如果你正在執(zhí)行批量查詢,它也表示為批次總成本的百分比。
- “等待統(tǒng)計(jì)信息”選項(xiàng)卡允許你輕松檢測查詢中的瓶頸
- 顯示與每個(gè)查詢關(guān)聯(lián)的等待和事件列表
- PLAN樹提供有關(guān)每個(gè)查詢(包括位置)執(zhí)行的信息,以便于優(yōu)化。
- 顯示最昂貴的操作。
- 提供所有表的輸入輸出統(tǒng)計(jì)信息。
- 每次更改查詢后,可幫助查看多個(gè)查詢的分析結(jié)果。
結(jié)論
簡而言之,SQL查詢優(yōu)化工具可幫助你選擇最少的時(shí)間和資源來執(zhí)行正確查詢,同時(shí)提供最佳性能,這些工具是優(yōu)化SQL查詢的絕佳選擇。不過需要指出的是,這五款工具都是收費(fèi)工具,都提供免費(fèi)試用版,只有EverSQL提供長期免費(fèi)版,但功能有限。



























