前段時間,在壓測過程中發現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