[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 メーリングリストの案内