性能測試案例:Oracle重復的SQL


前段時間,在壓測過程中發現oracle數據庫存在一定的性能問題,通過awr報告,發現硬解析偏多,隨后通過oem監控,發現是有重復的sql,這樣每個sql都會硬解析,生成執行計划。下面簡單演示下這個問題(非實際項目壓測過程復現)。→→→點此閱讀原文

 

執行sql

可以看到,只有job的值不一樣

 

 

 

生成awr報告 

SQL> @?/rdbms/admin/awrrpt.sql

選擇報告類型為html,天數輸入1

 

 

開始快照id和結束快照id分別選擇2、3

 

 

直接回車,會自動創建一個帶快照id文件名的html文件

 

 

報告創建成功

 

 

html文件

 

 

在html報告Report Summary的Load Profile中,發現硬解析(Hard parses)每秒鍾次數偏多,這樣會造成共享池latch的爭用,影響數據庫並發處理能力、硬解析還消耗cpu時間,為了進一步定位問題,下面結合oem一起分析。

 

oem監控

登錄

 

 

主目錄 

 

 

選擇“性能”標簽

 

 

展示性能監控 

 

 

 

 

選擇“重復的SQL”

 

 

可以看到我們剛剛執行的sql

 

 

5個sql執行的時候都生成了執行計划,最好是只生成一次執行計划,后面復用這個執行計划,我們可以用綁定變量的方式來解決這個問題。

 

 

最新原文:https://www.cnblogs.com/uncleyong/p/13337589.html

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM