私のデータベースで、私のapiメソッドの1つから、小さな(ただし頻繁に)操作を行う必要があります。私はそれらを "withSession"に毎回ラップしようとすると、私はひどいパフォーマンスを得る。ScalaQueryでセッションを再利用しますか?
db withSession {
SomeTable.insert(a,b)
}
上記の例を100回実行すると、22秒かかります。単一のセッションでそれらをすべて実行することは瞬時に行われます。
以降の関数呼び出しでセッションを再利用する方法はありますか?
接続プーリングがないと思います。メモリ内のhsqlデータベースにアクセスするだけです。ちなみに、これらの接続には「有効期限」の時間がありますか?たぶん私は1つの接続を開き、それはすべての時間開いたままにすることができますか? – Rogach
100の挿入に22秒を使用すると、hsqlデータベースが接続のインスタンス化に大きなオーバーヘッドを持つように見えます。有効期限はサーバーに依存します。これはしばしば接続プールの問題です。彼らが解決する1つの方法は、接続を渡す前にテストクエリを実行することです(たとえば 'select 1')。 – thoredge