スポンサーリンク
スポンサーリンク

PostgreSQLのVACUUMをbatchから実行する

batchPostgreSQLデータベース

PostgreSQLのユーザーデータベースで、不要レコードのあるテーブルのみ、VACUUMを実行するバッチ(bat)を作成しました。
ソースコードはGitHubで公開しています。

 

フォルダ/ファイル構成

 

select_table.sql

・「n_dead_tup > 0」でVACUUM待ちの不要レコードがあるテーブルのみ抽出しています。

 

select_table_output.txt

・select_table.sql の実行結果。

 

vacuum.bat

・(ホスト名)(データベース名)(データベース ログインユーザ名)(データベース ログインパスワード)を環境に合わせて変更することで実行可能です。
・select_table.sql をPostgreSQLに発行し、抽出されたテーブルを対象に VACUUMを実行します。
・「for /f “delims=” %%a in (%SELECT_TABLE_OUTPUT_FILE%) do」でSQL実行結果ファイルを1行づつ読込み、「echo %%a | find “〇〇〇” 1>nul if not ERRORLEVEL 1」で、テーブル名以外はスキップしています。

 

20230111.log

・vacuum.bat 実行ログ。

コメント

タイトルとURLをコピーしました