2013-02-25 49 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