[pgsql-jp: 32973] Re: 問い合わせの速度低下
Mao Morimoto
yneko2 @ yamamaya.com
2004年 5月 19日 (水) 11:28:57 JST
もりもとです、お返事ありがとうございます。
> ところで,「どんどん遅くなる」では良く状況がわかりませんので,EXPLAIN
> ANALYZEの結果を速いときと遅いときの両方で見せてもらえませんか?
試したクエリ
SELECT COUNT( * )
FROM T_RESULT
WHERE TIME_SMPL > '2004-05-16 09:00:00' AND
TIME_SMPL <= '2004-05-17 09:00:00' AND
CHECK_ID = 256 AND
CHECK_SUB = 0
;
実行プラン
Aggregate (cost=656.84..656.84 rows=1 width=0)
-> Index Scan using i_result_3 on t_result (cost=0.00..656.43 rows=166
width=0)
Index Cond: ((check_id = 256) AND (check_sub = 0) AND
(time_smpl > '2004-05-16 09:00:00'::timestamp without time zone)
AND
(time_smpl <= '2004-05-17 09:00:00'::timestamp without time zone))
昨日までは、VACUUMするとクエリの実行プランでのインデックスの使い方が
時々変化していたのですが、今日は落ち着いたようです。
今までは、TIME_SMPLだけのインデックスを使って、CHECK_IDやCHECK_SUBがFilterに
なっていたりとか、逆にCHECK_IDとCHECK_SUBの複合インデックスを使って、
TIME_SMPLがFilterになったりしていたので、パフォーマンスの変化はこれが原因
だったのでしょうか。。
今は、当初の設計通り、3次元の複合インデックスを使うようになったようです。パ
フォーマンスも昨日から特に変化していませんでした。
いずれにしても、レコード数がもっとたまってきたときの対策は考えた方が良さそう
ですね。。
ありがとうございました。
Mao Morimoto
http://blog.yamamaya.com/
pgsql-jp メーリングリストの案内