[pgsql-jp: 31142] MAX関数が遅い。

Yoshiiro Tsumori tsumori @ cds.ne.jp
2003年 9月 30日 (火) 17:24:16 JST


IDナンバーをプライマリーキーにしております。MAXで最大のIDナンバー
を取得する処理なのですが、必ずシーケンシャルスキャンで最大値を見
付けておりまして、時間が掛かります。時間が掛かるというのは主観的
なんですがプライマリーキーなのだし、少なくともインデックスを使っ
て最大値を探して欲しいと考えています。ちなみに"vacuum"や"vacuum
analyze"を実行しても、やはりインデックスは使用されませんでした。
何か良い方法などありましたら、よろしくお願い致します。

onishi=# explain select max(mas_no) from g_master;
NOTICE:  QUERY PLAN:

Aggregate  (cost=14737.84..14737.84 rows=1 width=4)
  ->  Seq Scan on g_master  (cost=0.00..14609.27 rows=51427 width=4)

RedHat7.3
PostgreSQL 7.2.1 on i686-pc-linux-gnu, compiled by GCC 2.96
※7.3.3でも試してみましたが、やはりシーケンシャルスキャンでした。

津守 美弘
http://www27.cds.ne.jp/~zeos/




pgsql-jp メーリングリストの案内