postgresqlの速度計測

といっても、クエリを一定回数繰り返してかかった秒数の平均をエコーバックするだけ。
bashで作成しましたが、小数の計算ってどうやるんだ?とちょっと試行錯誤。bcを使えばいいようです。
できたのはこんなの。

#!/bin/bash
export PGPASSWD=password
sum="0.0"
count=5
i=0
while [ $i -lt $count ] ;
do
    value=$(psql -U role_name -w db_name < test_query.sql | grep '^時間' | awk '{print $2}')
    sum=$(echo "$sum+$value" | bc)
    i=$(( $i + 1 ))
done
echo "scale=3; $sum/$count" | bc

test_query.sqlにクエリを記述。一行目に\timingと書くと、クエリ処理にかかった時間をミリ秒で出してくれます。

\timimg
SELECT count(*) from hoge;

でもって、出てきた秒数を足しあげて、繰り返し回数で除算。
繰り返しの回数をcountのところへかけばOK。
ちょいとハマったのがwhile[]のところ。i=0って行がないと、while中の-lt条件文でエラーになります。
$countは数字で定義されているけれども、$iはまだwhileがある行では未定義なので比較できないってエラーになるようですね。