3 回答

TA貢獻1827條經(jīng)驗 獲得超8個贊
假設您使用的是最新版本的驅(qū)動程序,https://github.com/godror/godror
sql.Open("godror", params.StringWithPassword()) implies standaloneConnection=0 setting.
您看到的統(tǒng)計數(shù)據(jù)來自 go sql 連接池。go sql 調(diào)用驅(qū)動程序 connect 方法,該方法反過來嘗試從另一個池獲取連接(OCI 由于設置 standaloneConnection=0 維護它)。
最大出站連接沒有超過 params.MaxSessions 但它只是 go sql 連接計數(shù)器
numOpen, ....
理想情況下,將 go sql 池設置調(diào)整得更接近另一個池值,這樣 go 例程就不會阻塞。
您可以使用 godror.Conn 中的 GetPoolStats() 方法檢查 OCI 池統(tǒng)計信息,并確認最大出站連接的實際數(shù)量。這里的例子
https://github.com/godror/godror/blob/main/z_test.go

TA貢獻1799條經(jīng)驗 獲得超8個贊
在 Oracle 中連接和會話是不同的概念。
連接是到數(shù)據(jù)庫的網(wǎng)絡連接,而會話是用戶與數(shù)據(jù)庫交互的封裝......
參考這本書,以及Oracle會話和連接池之間的關系。

TA貢獻1839條經(jīng)驗 獲得超15個贊
DB In Use Conn:242 DB Max Idle Closed:766
總和差不多1000,喜歡這個默認值
poolMaxSessions=1000
我認為您沒有使用 242 個同時連接。你有一個連接,數(shù)據(jù)庫將限制同時會話的數(shù)量。
您應該檢查 sql 包如何處理它(它是開源的!)以及特定驅(qū)動程序如何處理它(也是開源的?。绻斜匾堅隍?qū)動程序項目上打開一個問題
https://github.com/godror/godror
- 3 回答
- 0 關注
- 180 瀏覽
添加回答
舉報