テンポラリDBのクエリが遅い

テンポラリDBに大量のデータがありクエリが遅い場合、ソートに利用するワークメモリが不足している可能性があります。

ここではスクリプト上でワークメモリを増やす方法について説明します。

設定手順

ワークメモリを増やす場合、JDBC > 更新系SQL実行 を利用して、次のSQLを発行します。

SET SESSION work_mem='10MB'

上記SQLを実行することで、同一セッション内で利用できるワークメモリが増えますので、該当のクエリを実行するスクリプトにて実行してください。

 

また、現在のワークメモリのサイズを確認するには、 JDBC > 検索系SQL実行 を利用して、次のSQLを発行します。

SHOW work_mem

 

補足

  • ワークメモリを増やしすぎると、WebStudioの操作ができなくなったり、他の処理に影響が出る場合があります。まず SHOW work_mem で現在の設定値を確認し、徐々に増やして効果を確認するようにしてください。
  • ワークメモリを増やしすぎて何らかの異常が発生した場合は、WebStudioの再起動を行ってください。
  • テンポラリDBはPostgreSQLのデータベースです。PostgreSQLのヘルプも参考にしてください。
    SETコマンドについて https://www.postgresql.jp/document/9.0/html/sql-set.html
    パラメータについて https://www.postgresql.jp/document/9.0/html/runtime-config-resource.html