ORACLE的軟 軟 軟 解析!

zengmuansha發表於2024-01-30

在海鯊資料庫架構師精英群裡,有位朋友說ORACLE 有 軟軟軟解析. 就是把執行計劃快取在客戶端裡,從而避免去服務端找執行計劃.

他給了個設定方法,

Weblogic console->datasource->connectionPool
Statement Cache Type =>LRU
Statement Cache Size=100

CURSOR_NUMBER = 100*20 CONNECT =2000

最後JAVA 使用要啟用Prepared Statement 寫法

我去AI問了下

在WebLogic中,語句快取(Statement Cache)是一種將SQL語句快取起來以便重複使用的機制。當一個連線從連線池中借出並使用完畢後,該連線中的所有快取語句都會被清空。如果開啟了語句快取,則與該連線相關的語句將被快取下來,這樣在下次執行相同SQL語句時,就可以直接從快取中獲取結果而無需重新生成執行計劃和語法解析等步驟,從而提高了系統的執行效率。

在WebLogic Console中,可以透過Connection Pool配置頁面來設定Statement Cache Size引數的值。該引數指定了連線池中語句快取的大小,預設值為0,表示不開啟語句快取。可以根據實際應用需求來適當調整該引數的大小,以提高系統的效能。

需要注意的是,開啟語句快取並不一定能夠提高系統效能,因為語句快取也會佔用一定的記憶體空間,當快取的語句數量過多或者SQL語句較為複雜時,可能會導致記憶體溢位等問題。因此,在開啟語句快取時需要綜合考慮系統的應用場景、硬體資源等多個方面因素,以選擇最優的設定方式。

這麼說來確實是了,雖然O記官方沒有這麼說!  聽 蓋國強 一般叫"不解析"!

不解析 換個叫法 就是 軟軟軟解析咯!

難怪很多 PAPER ACE 都沒聽說過!

我查了其它客戶端是否支援

JDBC 引數設定 CACHESTATEMENTSIZZE 有利於提高軟軟解析。雖然資料庫設定SESSION級CACHE CURSOR 數字,不過因為連結池隨機使用下,CACHE CURSOR命中率很低,所以無法提高軟軟解析


反應在AWR報告中中的 PARE TO EXECUTE % 率

DBCP 
 <property name="poolPreparedStatements" value="true"/> 
 <property name="maxOpenPreparedStatements" value="10"/>

官方文件說明:

C3P0 

maxStatements  所有連結總大小
maxStatementsPerConnetion 每個連結大小
statementCacheNumDefreedCloseThreads

使用LRU清除過期STATEMNS


DRUID 連線池配置

DBA大伽之所以對軟軟軟解析不瞭解,主要是它效能提升太小了,而且主要這活配置都是運維乾的! 


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

相關文章