產(chǎn)品體驗中心 下載與支持 產(chǎn)品社區(qū) 澤眾云   合作代理 |  咨詢電話:400-035-7887/021-6072 5088

有哪些SQL性能測試工具?SQL性能測試工具的主要特點

發(fā)布時間:2020-07-13

SQL優(yōu)化是一個復(fù)雜的工程,首先要講究從整體到局部。那么,關(guān)于數(shù)據(jù)庫整體優(yōu)化都有哪些性能測試工具?這些工具的特點?

有哪些SQL性能測試工具?

這里首先要分成兩部分:一種是不同調(diào)優(yōu)場景的分析,可分為單純場景的優(yōu)化和復(fù)雜場景的優(yōu)化;而另一種是基于這些場景的工具應(yīng)用,就是針對單純場景的優(yōu)化手段和復(fù)雜場景的優(yōu)化手段。

SQL性能測試工具

1、不同調(diào)優(yōu)場景分析

比如一條SQL很慢,原因是未走高效的索引查詢而走全表掃描,加個索引就快了,執(zhí)行速度從10s變成了0.1s;或者一條SQL執(zhí)行速度被優(yōu)化到1s左右,邏輯讀控制在50個左右,應(yīng)該就已經(jīng)OK。這就是單純的環(huán)境,我們差不多無須再考慮優(yōu)化了。

那啥是復(fù)雜呢?那就是,剛才那個語句加了索引后,本應(yīng)該從10s變成0.1s,結(jié)果還是10s,甚至變成30s了,這是咋回事呢?原來,現(xiàn)在系統(tǒng)是整體出問題了,數(shù)據(jù)庫主機資源耗盡,啥語句都跑不快的。

還有那個邏輯讀在50左右的SQL,如果一天執(zhí)行幾百幾千萬次,這要是能將邏輯讀降低一點,得省多少的邏輯讀啊。原來復(fù)雜環(huán)境真的很復(fù)雜,要考慮SQL本身沒問題而是被環(huán)境影響,還要考慮SQL的執(zhí)行頻率,判斷其調(diào)優(yōu)價值與調(diào)優(yōu)空間,這些在單純的環(huán)境里,是不用考慮的。

2、不同場景對應(yīng)工具

接下來,我們說說這兩種場景對應(yīng)的工具的使用。關(guān)于局部分析調(diào)優(yōu)工具,這個其實就是在說SQL的執(zhí)行計劃了,這是SQL優(yōu)化最重要的手段之一,通過分析執(zhí)行計劃,我們可以知道SQL語句的訪問路徑,知道它慢在哪里,從而進行SQL優(yōu)化。由于在隨后的章節(jié)中我們會詳細介紹執(zhí)行計劃相關(guān)知識,這里就不再細述了。

關(guān)于整體的調(diào)優(yōu)工具,這里我們先撇開主機、網(wǎng)絡(luò)、存儲等層面的因素,暫時從數(shù)據(jù)庫的整體層面入手。主要工具有AWR、ASH、ADDM、AWRDD這四個工具。其中AWR是關(guān)注數(shù)據(jù)庫的整體性能的報告;ASH是數(shù)據(jù)庫中的等待事件與哪些SQL具體對應(yīng)的報告;ADDM是Oracle給出的一些建議;而AWRDD是Oracle針對不同時段的性能的一個比對報告,比如今天早上9點系統(tǒng)很慢,而昨天這個時候很正常,很多人就想知道今天早上9點和昨天早上9點有什么不同,于是就有了這個報告。

整體分析調(diào)優(yōu)是必需的,那么我們對此的學(xué)習(xí)也有規(guī)律可循。首先是獲取系統(tǒng)整體信息的手段,一般通過報告和日志獲取。好比破案一樣,這就是收集證據(jù)的階段。接下來要找到蛛絲馬跡,那就是如何發(fā)現(xiàn)問題。

整體性能測試工具的要點:

其實數(shù)據(jù)庫性能工具的應(yīng)用(報告獲取和關(guān)注要點)有以下幾點:

1. 報告的獲取

Oracle性能報告分成AWR、ASH、ADDM、AWRDD和AWRSQRPT這5個類型。

Oracle提供的一種性能收集和分析工具,它能提供一個時間段內(nèi)整個系統(tǒng)資源使用情況的報告,這個報告里有很多總體性指標來判斷系統(tǒng)是否健康。沒毛病最好,萬一有毛病,問題出在什么模塊,是日志切換過于頻繁,還是硬解析過大,還是某些SQL相關(guān)等待事件在耗資源……這就是AWR報告。這樣看來,體檢報告和AWR報告非常類似。

同樣假設(shè)你的數(shù)據(jù)庫是SQL相關(guān)等待事件問題,AWR報告很可能只告訴你有這個問題而無法告訴你是哪些SQL引發(fā)的。你要得到這些指標,想了解具體某些SQL和相關(guān)等待事件的對應(yīng)需要做進一步的信息收集,那就是ASH報告。看來對比胃鏡和ASH報告,二者也非常類似。

如果將含各種晦澀的指標的數(shù)據(jù)庫體檢報告用一些白底黑字的文字代替,用文字直接說明數(shù)據(jù)庫遇到了什么問題,告訴你該如何去優(yōu)化,那新手一定會看得很明白,這就是ADDM報告。

假設(shè)你有系統(tǒng)新舊兩個時段的兩份AWR報告,負責(zé)任的DBA一定會讓你將舊的AWR報告也提供給他。他會認真地比對兩份報告,查看他關(guān)注的數(shù)據(jù)庫指標是否有異常波動,這些波動對DBA很有參考意義,往往預(yù)示著數(shù)據(jù)庫性能瓶頸的發(fā)展趨勢。Oracle提供了一個工具能夠?qū)蓚€時段的AWR報告合并,并能方便地顯示出比對信息,這個工具就是AWRDD。

同樣ASH報告判斷出某些SQL有問題,卻無法得到執(zhí)行計劃等更詳細的信息,只能依靠AWRSQRPT去獲取這些信息??磥砘顧z和AWRSQRPT報告比起來,兩者也非常類似。

2. 報告的關(guān)注點

你也會對Oracle的性能報告中的各種指標進行關(guān)注來判斷數(shù)據(jù)庫出了什么毛病。兩者非常類似,關(guān)注不同的指標。

這里有一個特別值得注意的地方,那就是性能報告的采樣時間。Oracle默認是每小時產(chǎn)生一個采樣點,你可以收集每個小時的性能報告。我們對此要敏感,比如你的性能故障是發(fā)生在今天早上7點~8點。然后系統(tǒng)自動恢復(fù)了,你獲取一張8點~9點的性能報告來查問題,就毫無意義了。

最后小編,為您介紹一下澤眾軟件推出的數(shù)據(jù)庫測試工具PR,支持自動生成性能分析報告,報告以圖表和表格數(shù)據(jù)兩種形式提供,圖表包括了性能曲線、柱狀圖等,清晰直觀,幫助快速了解測試結(jié)果,查找性能問題。

推薦閱讀:

性能測試和并發(fā)壓力的關(guān)系 性能測試中怎么設(shè)置并發(fā)數(shù)?

某保險系統(tǒng)性能驗收測試報告案例分享

什么是WebSocket?有哪些支持WebSocket協(xié)議的壓力測試工具?

測試MySQL性能的工具有哪些?MySQL性能測試工具對比

性能壓測概念及性能壓測工具對比選型

企業(yè)為什么需要做全鏈路壓測?全鏈路壓測能解決什么問題?

接口壓力測試怎么才能做好?接口壓力測試要點

cs項目怎么做性能測試?cs性能測試跟bs有什么區(qū)別?

怎樣進行數(shù)據(jù)庫性能測試?數(shù)據(jù)庫壓力測試的幾個步驟

大型web網(wǎng)站壓力測試技巧及常見的web頁面性能測試工具

網(wǎng)站負載測試有哪些工具推薦?

本文內(nèi)容不用于商業(yè)目的,如涉及知識產(chǎn)權(quán)問題,請權(quán)利人聯(lián)系SPASVO小編(021-60725088-8054),我們將立即處理,馬上刪除。
滬ICP備07036474號 2003-2024 版權(quán)所有 上海澤眾軟件科技有限公司 Shanghai ZeZhong Software Co.,Ltd.
微信
咨詢

添加客服微信 歡迎咨詢測試工具和測試服務(wù)

微信客服
問題
反饋
產(chǎn)品
畫冊

掃描二維碼下載澤眾軟件企業(yè)宣傳冊

產(chǎn)品畫冊
返回
頂部

方案咨詢

×
提交信息

電話咨詢,400-035-7887,安排專業(yè)技術(shù)售前給您解答(產(chǎn)品試用、技術(shù)交流、服務(wù)咨詢和商務(wù)報價)。

您的信息已成功提交!

我們的客服人員稍后會與您聯(lián)系