當(dāng)前位置:澤眾軟件測試網(wǎng)- 技術(shù)文章 -正文

有哪些SQL性能測試工具?SQL性能測試工具的主要特點(diǎn)

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

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

有哪些SQL性能測試工具?

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

SQL性能測試工具

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

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

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

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

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

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

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

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

整體性能測試工具的要點(diǎn):

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

1. 報(bào)告的獲取

Oracle性能報(bào)告分成AWR、ASH、ADDM、AWRDD和AWRSQRPT這5個(gè)類型。

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

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

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

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

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

2. 報(bào)告的關(guān)注點(diǎn)

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

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

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

推薦閱讀:

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

某保險(xiǎn)系統(tǒng)性能驗(yàn)收測試報(bào)告案例分享

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

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

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

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

接口壓力測試怎么才能做好?接口壓力測試要點(diǎn)

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

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

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

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

本文內(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ù)報(bào)價(jià))。

您的信息已成功提交!

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