連接池調優

由於創建物理數據庫連接非常耗時,你應該始終使用連接池,而且應該始終使用生產級連接池而非Hibernate內置的基本連接池算法。

通常會爲Hibernate提供一個有連接池功能的數據源。Apache DBCP的BasicDataSource[13]是一個流行的開源生產級數據源。大多數數據庫廠商也實現了自己的兼容JDBC 3.0的連接池。舉例來說,你也可以使用Oracle ReaApplication Cluster [15]提供的JDBC連接池[14]以獲得連接的負載均衡和失敗轉移。

不用多說,你在網上能找到很多關於連接池調優的技術,因此我們只討論那些大多數連接池所共有的通用調優參數:

* 最小池大小:連接池中可保持的最小連接數。
* 最大池大小:連接池中可以分配的最大連接數。
如果應用程序有高併發,而最大池大小又太小,連接池就會經常等待。相反,如果最小池大小太大,又會分配不需要的連接。
* 最大空閒時間:連接池中的連接被物理關閉前能保持空閒的最大時間。
* 最大等待時間:連接池等待連接返回的最大時間。該參數可以預防失控事務(runaway transaction)。
* 驗證查詢:在將連接返回給調用方前用於驗證連接的SQL查詢。這是因爲一些數據庫被配置爲會殺掉長時間空閒的連接,網絡或數據庫相關的異常也可能會殺死連接。爲了減少此類開銷,連接池在空閒時會運行該驗證。
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章