分享一次意外的ORACLE數據庫主機性能測試結果
最近一直在做一些ORACLE SQL性能量化方面的研究,要實現較準確的SQL性能量化很復雜,現在一直在小心推進,周末做了一下一些機器的兩個參數測試:
一個是oracle數據庫1毫秒可執行多少次內存hash運算操作,這個主要用于量化hash join的時間;
一個是oracle數據庫1毫秒可執行多少次內存排序的比較運算,這個主要用于量化order by的時間。
以下是測試結果,讓我非常意外。
以下是測試代碼,測試采用單會話sqlplus執行,因此只能衡量主機CPU單核的性能。
下面這個是hash次數的測試代碼:
下面這個是sort次數的測試代碼:
體會如下:
1、測試結果只是反應CPU單核的性能,并不體現主機的整體性能,主機負載對測試有一定的影響,但比較小。
2、現在PC服務器上采用的INTEL或AMD CPU單核非常強勁,已經遠遠超過幾年前的小型機POWER5,Itanium CPU單核性能,由于沒有最新的POWER6,POWER7,所以也不好評論POWER6和POWER7的性能。
3、臺式機的CPU INTEL E8400(3G)比 PC服務器上的XEON E5520(2.26G)還強很多,這個得益于CPU主頻的提高。現在PC服務器CPU的單核性能與臺式機CPU差不多,并不像有些文章說的服務器性能強很多,我理解是服務器CPU穩定性更好,可擴展性更強,用普通臺式機服務器一般最多可裝2顆,但是服務器上可裝4顆,甚至更多,這一方面是服務器本身架構的設計支持,另一方面是服務器CPU在多路并行處理方面考慮了更多。
4、AMD的CPU性能也非常強勁,AMD Opteron 2378(45nm) 與AMD Opteron 2356(65nm) 主頻差不多,但Cache差很多,性能高一倍,可以看出AMD的CPU性能與制造工藝和緩存關系密切。
5、Oracle9i排序算法的復雜度約為nlog(n),Oracle10g以后排序算法有非常大的改進,算法的復雜度已經遠遠小于nlog(n)。
6、小型機CPU性能已經沒有任何優勢,小型機的優勢只是
穩定性更好(我們的小型機還沒發生過異常宕機,PC服務器有時會發生);
可維護性更好(小型機很多組件都可在線維護與升級,PC服務器可做的很少);
可擴展性更強(小型機的CPU經常看到擴展到64顆以上,PC服務器一般很少能上16顆)。
個人觀點:
如果你是銀行、證券類核心數據庫主機,那小型機還是有意義的,如果只是一般企業信息化主機,那PC服務器性價比更好,如果只是公司內部開發用服務器,那選擇當前高性能的臺式機INTEL CPU Core i7會更實用。
Oracle10g與Oracle9i相比,除了RAC外,數據庫IO管理方面沒有大的提升,但是在一些細節方面做得很優秀,如本次測試中的hash運算及排序算法,所以如果你的主機性能瓶頸是CPU運算(非IO等待),那從Oracle9i升級至Oracle10g或11g會有一些幫助。
測試結果只是反應CPU單核的性能,并不體現主機的整體性能。以上測試代碼沒有參考標準,也沒有理論基礎,只是個人隨便寫的,所以不嚴謹,但是測試結果還是有一些參考意義,拿出來與大家分享,歡迎討論。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
