Oracle效能優化-SQL優化(案例二)

chenoracle發表於2020-02-17

Oracle 效能優化 -SQL 優化 ( 案例二 )

 

DB Oracle 11.2.0.1.0

問題: 客戶反饋 銷售訂單儲存 有時很慢。

問題分析: 問題重現後,檢視後臺資料庫正在執行的SQL ,找到了引起操作慢的 SQL ,執行計劃如下。

其中 SQL 中引用了臨時表 ic_temp_atpdim0608 ,每次查詢都使用同一個 SQL 文字, 重用同一個執行計劃, 即使臨時表資料每次差距特別大也會使用同一個執行計劃,導致SQL 效率問題;

解決方案:

改寫SQL ,需要在程式碼裡將 這個耗時SQL 語句新增動態隨機數的 HINT ,以避免執行計劃重用,提高執行計劃準確性;

例如:

SQL:

select atptable.pk_group pk_group...... from ......;

更改後的SQL

select /*+ 隨機數*/ atptable.pk_group pk_group...... from ......;

可以使用類似如下方式增加隨機數;

String sql="select /*+ "+new java.util.Random().nextDouble()+" */ col"

歡迎關注我的微信公眾號"IT小Chen",共同學習,共同成長!!!

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/29785807/viewspace-2675954/,如需轉載,請註明出處,否則將追究法律責任。

相關文章