ページの先頭行へ戻る
Symfoware Server V12.1.0 アプリケーション開発ガイド
FUJITSU Software

2.4.2 ステートメントキャッシュ機能

ステートメントキャッシュ機能は、SQL文をコネクション単位でキャッシュすることで、次に同じ文字列のSQL文を実行するときに文の解析と作成を省略します。これによって、繰り返し実行されるループやメソッドの中で同じ文字列のSQL文を実行するような場合に性能が向上します。また、コネクションプーリング機能と組み合わせた場合にも性能の向上が期待できます。

以下に、ステートメントキャッシュ機能の仕組みを説明します。

キャッシュ登録制御

ステートメントキャッシュ機能が有効の場合に、PreparedStatementクラスのsetPoolable(boolean)メソッドで、SQL文をキャッシュするかどうかを設定できます。

設定する値は、以下のとおりです。

false

ステートメントキャッシュ機能が有効でも、SQL文はキャッシュされません。

true

ステートメントキャッシュ機能が有効の場合、SQL文をキャッシュします。

キャッシュ数について

コネクション単位で異なる文字列のSQL文数を指定してください。

注意

  • アプリケーションの変更により指定値が適切でなくなる可能性がありますので、定期的にpg_stat_statementの実行により適切な値を確認/更新することを推奨します。

  • キャッシュされたSQL文情報は一定のメモリを消費するため、メモリ消費の上限値について考慮する必要があります。ステートメントキャッシュ機能により消費するメモリの目安は以下のとおりです。

    • クライアント

      アプリケーションの1プロセスあたりのコネクション数 × キャッシュ数 × 2KB(注)
    • サーバ

      アプリケーションの1プロセスあたりの最大コネクション数 × キャッシュ数 × 10KB(注)

      注: 1SQL文あたりのメモリ消費の目安