[pgsql-jp: 31144] Re: MAX関数が遅い。
Ryosuke Hosoi
hosoi @ ryo.com
2003年 9月 30日 (火) 17:32:48 JST
細井です
From: Yoshiiro Tsumori <tsumori @ cds.ne.jp>
Subject: [pgsql-jp: 31142] MAX関数が遅い。
Date: Tue, 30 Sep 2003 17:24:16 +0900
Message-ID: <20030930165830.D70D.TSUMORI @ cds.ne.jp>
> IDナンバーをプライマリーキーにしております。MAXで最大のIDナンバー
> を取得する処理なのですが、必ずシーケンシャルスキャンで最大値を見
> 付けておりまして、時間が掛かります。時間が掛かるというのは主観的
> なんですがプライマリーキーなのだし、少なくともインデックスを使っ
> て最大値を探して欲しいと考えています。ちなみに"vacuum"や"vacuum
> analyze"を実行しても、やはりインデックスは使用されませんでした。
インデックスというのは「検索用」ですから、そういう場合は使われないですね
> 何か良い方法などありましたら、よろしくお願い致します。
IDにシーケンスを使用するか、ID管理用のテーブルを使用するのがよいかと
思います。
--
Ryosuke Hosoi / 細井 良祐
mailto:hosoi @ ryo.com http://www.ryo.com/
PGP Public Key http://www.ryo.com/ryo/hosoi.ryo.com.asc
fingerprint = 4F39 61B0 2034 3A5C DFE8 FBCB 7B99 90CF EBE1 A3F3
>
> 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 メーリングリストの案内