[pgsql-jp: 29471] Re: インデックスの利用について
shiina
shiina @ senpo.com
2003年 3月 24日 (月) 14:22:57 JST
椎名です。
杉田さん、返信が遅れて申し訳ありません。
> explain analyze の結果は、どうなるでしょうか?
普通の状態で
Group (cost=56581.99..56745.32 rows=1633 width=31)
(actual time=76308.37..76308.38 rows=1 loops=1)
-> Sort (cost=56581.99..56622.82 rows=16333 width=31)
(actual time=76308.33..76308.33 rows=1 loops=1)
Sort Key: t1_key_p1, t1_key_s1, t1_key_s2
-> Seq Scan on keiri_kamoku_zandaka
(cost=0.00..55439.06 rows=16333 width=31)
(actual time=53232.60..76235.40 rows=1 loops=1)
Filter: ((t1_key_p1 = 'aaa'::character varying)
AND (t1_key_s1 = 'bbb'::character varying)
AND (t1_key_s2 >= '999'::character varying))
Total runtime: 76308.76 msec
set enable_seqscan = false;
を実行後
Group (cost=0.00..63985.27 rows=1633 width=31)
(actual time=51.02..51.02 rows=1 loops=1)
-> Index Scan using table1_key1 on table1
(cost=0.00..63862.77 rows=16333 width=31)
(actual time=50.99..51.01 rows=1 loops=1)
Index Cond: ((t1_key_p1 = 'aaa'::character varying)
AND (t1_key_s1 = 'bbb'::character varying)
AND (t1_key_s2 >= '999'::character varying))
Total runtime: 68.78 msec
このような結果になりました。
> enable_seqscan = false をするとしても postgresql.conf ではせずに、
>
> set enable_seqscan to false;
> それでよいと確信を持てるクエリー;
> set enable_seqscan to true;
>
> の方がいいと思います。
使い分けないといけないということですね。
pgsql-jp メーリングリストの案内