PostgreSQLを学習中のこの頃です。
DBにデータって挿入しまくったら速度ってどうなるの!?と気になったので行挿入するWindowsバッチを作ってみました。
めちゃくちゃ雑ですがバッチファイルの最初にPostgreSQLの本体のあるフォルダやホスト名、DB名などを定義しています。
その情報でDB接続を行い、INSERTのSQLを実行しています。
DBに書き込む情報はタイムスタンプ情報でバッチは無限ループするので終わりたいときはコマンドプロンプトを終了してください。
バッチファイルと同じ場所に書き込んだ回数とSQL実行前後の日時を出力したログファイルも作成されます。
〜
@ECHO OFF
REM --------------------------------------------------
REM DB接続パラメータ
REM --------------------------------------------------
SET PGPATH="C:\Program Files\PostgreSQL\13\bin\"
SET HOSTNAME=localhost
SET PORTNUM=5432
SET DBNAME=postgres
SET USERNAME=postgres
SET PGPASSWORD=1234567890
REM --------------------------------------------------
REM 処理時間計測用のログファイル
REM --------------------------------------------------
SET LOGFILE=result.log
REM --------------------------------------------------
REM SQL実行
REM --------------------------------------------------
SET /a cnt=0
:LOOP
SET /a cnt=cnt+1
SET /P X=%cnt%,%DATE% %TIME%<NUL>>%LOGFILE%
REM %DATE:~0,4%-%DATE:~5,2%-%DATE:~8,2%でyyyy-MM-ddを生成
%PGPATH%psql -h %HOSTNAME% -p %PORTNUM% -d %DBNAME% -U %USERNAME% -c "INSERT INTO ""TestTable""(""Count"", ""Time"") VALUES(%cnt%, '%DATE:~0,4%-%DATE:~5,2%-%DATE:~8,2% %TIME%');"
ECHO ,%DATE% %TIME%>>%LOGFILE%
goto LOOP
〜
DBのテーブルは下記の構成です。


書き込み速度の比較は次回にでもやってみたいと思います!
更新:2021/7/27
【PostgreSQL】INSERT、UPDATE速度の単純検証 - ででりんブログ