[pgsql-jp: 30287] 追加 Re: indexを使用しない/ 使用する違いは?

Genshirou Taki g_taki @ max-corporation.com
2003年 6月 30日 (月) 20:22:45 JST


g_takiです。

環境Bにて、psqlで接続して、
\di を行ったところ、
indexは作られていることは確認しました。

On Mon, 30 Jun 2003 20:19:06 +0900
Genshirou Taki <g_taki @ max-corporation.com> wrote:

> g_takiです。
> 
> サーバの環境によって、同じSQL文でもindexを使わない場合があるのでしょうか?
> 
> 2箇所の異なった環境に、同じSQLで発行したTableなどがあり、
> explain を行ったところ、環境Aでは、indexを使用していると表示されたのです
> が、環境Bではindexを使用していませんでした。
> 
> vacuumdb -a -f -z を行っても結果は同じでした。
> 
> この例では3千件程度ですが、100万件以上のデータを投入する予定なので、
> そのときのパフォーマンス低下が気になります。
> 
> 
> 環境A	Pentium II 400MHz
> 	Memory 384MB 
> 	Postgres 7.3.3
> 	Solaris 9 IA
> 	gcc-3.2.3
> 
> 環境B	Pentium III 1GHz 以上(正確なところは不明)
> 	Memory 1GB
> 	Postgres 7.2.2
> 	Tourbo Linux (バージョン不明)
> 	コンパイラ不明
> 
> テーブル作成に使用したSQL文
> create table haisyutu_map(
> id_area         integer,
> id_material     integer,
> img_total       integer,
> img_todokede    integer,
> img_todokedegai integer,
> img_taisyou     integer,
> img_hitaisyou   integer,
> img_katei       integer,
> img_idou        integer,
> img_noudo       integer,
> primary key(id_area, id_material)
> );
> 
> explain時のSQL文
> explain select * from haisyutu_map WHERE id_area = 80;
> 
> 環境Aの結果
> Index Scan using haisyutu_map_pkey on haisyutu_map  (cost=0.00..17.07
> rows=5 width=40)
>    Index Cond: (id_area = 80)
> 
> 
> 環境Bの結果
> Seq Scan on haisyutu_map  (cost=0.00..78.25 rows=353 width=40)
> 
> 
> -- 
> Genshirou Taki <g_taki @ max-corporation.com>
> 

-- 
Genshirou Taki <g_taki @ max-corporation.com>





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