2013-02-25 64 views
1

我有一個HSQLDB 嵌入式數據庫,我用它來存儲一些測量的統計數據。預計統計信息將從同一線程每秒鐘到達一次,但每隔幾秒從幾個不同的線程(從線程池中)獲取統計信息。多線程訪問嵌入式HSQLDB數據庫

我沒有與JDBC太多的經驗,所以我的問題可能聽起來微不足道:

  1. 什麼是創建/配置一個新的連接每秒的價格是多少?回想一下,數據庫是嵌入式的,所以沒有涉及TCP/IP。
  2. 每秒創建/處理準備好的報表的價格是多少?

請注意,某些刀片是批量插入,在這裏我想用一個事先準備好的聲明中addBatchexecuteBatch方法。

回答

0

您應該嘗試重新使用連接和準備好的語句。

要做到這一點,每個線程將有一個單一的連接,每個連接將重用一組準備好的語句。該連接在工作單元完成但未關閉後執行。當您的應用關閉或完成其工作時,該連接關閉。

您應該使用executeBatch進行批量插入。

使用HSQLDB,每秒創建/處理新連接/預處理語句的價格不高,但如果可以的話,您仍然應該避免這種情況。

+0

我是否必須手動實現此連接池,或者您有什麼建議? – mark 2013-02-26 09:52:45

+0

設計您的應用程序以保持完成該工作的Runnable類。每個實例都可以保持連接並重用它。 – fredt 2013-02-26 11:32:54

+0

請參閱ClientThread示例:http://hsqldb.svn.sourceforge.net/viewvc/hsqldb/base/trunk/src/org/hsqldb/test/TestBench.java?view=log – fredt 2013-02-26 14:21:28