1

いくつかの測定値の統計を保存するために使用するHSQLDB組み込みデータベースがあります。統計は、同じスレッドからほぼ毎秒到着すると予想されますが、数秒ごとに (スレッドのプールから) いくつかの異なるスレッドから取得されます。

私は jdbc の経験があまりないので、私の質問は些細なことに聞こえるかもしれません。

  1. 毎秒新しい接続を作成/破棄する価格はいくらですか? データベースは組み込まれているため、TCP/IP は関与していないことを思い出してください。
  2. 準備されたステートメントを毎秒作成/破棄する代償はいくらですか?

一部の挿入は一括挿入であることに注意してください。ここでは、準備されたステートメントの使用addBatchとメソッドを使用すると考えられます。executeBatch

4

1 に答える 1

0

接続と準備済みステートメントの再利用を試みる必要があります。

これを行うために、各スレッドは単一の接続を持ち、各接続は一連の準備済みステートメントを再利用します。作業単位が完了した後、接続はコミットされますが、閉じられません。アプリが閉じられるか、その作業が完了すると、接続は閉じられます。

一括挿入には executeBatch を使用する必要があります。

HSQLDB を使用すると、毎秒新しい接続を作成/破棄し、準備済みステートメントを作成するコストは高くありませんが、可能であればこれを回避する必要があります。

于 2013-02-25T20:43:46.213 に答える