[pgsql-jp: 29300] Re: パフォーマンス向上策
sugita @ sra.co.jp
sugita @ sra.co.jp
2003年 3月 8日 (土) 14:21:00 JST
杉田です。
From: Tsukasa Koizumi <tsukasa @ koiz.com>
Subject: [pgsql-jp: 29299] パフォーマンス向上策
Date: Sat, 8 Mar 2003 12:41:53 +0900
# 4 万のテーブルがすべて異なるのでなく同じ定義内容だとしたら、継承ですっきり
# できる可能性があるような気もしました。
後半の方のみです。
;;; ○テーブル数か、JOINか
;;; そもそも、パフォーマンスが著しく低下している原因が、いまひとつ掴めずに
;;; います。
;;;
;;; テーブル数が多くなれば、大量テーブルのUNION処理が遅くなるのはわかりま
;;; す。が、上記のBの処理では5つ程度のテーブルをJOINしているに過ぎないのに、
;;; 著しく遅くなっています。
;;;
;;; 一方、JOINをしていない、あるいは2つのテーブルしかJOINしていない別の処
;;; 理では、たいへん快適に動作していてパフォーマンスの問題は見られません。
;;;
;;; それでも、テーブル数が増えるにしたがって遅くなっているのも確かなので、
;;; テーブル数の多さが問題なのであろうと予測しています。
組み合わせるテーブルが増えるということは、組み合わせるテーブルの種類が増えて
行くので、単純に数が増えたためのみと考えることはできないのではないでしょうか?
例えば、たまたま、増えたテーブルが更新によるゴミの影響で遅くなるということもあ
ります。PostgreSQL のバージョンが不明ですし、検索系か更新系、更新系ならば、
VACUUM、ANALYZE、インデックス再作成をどのようにしているかも分からないと何とも
言えません。
;;; テーブル数が多くなると、3つ以上のテーブルJOIN処理速度に、大きな影響を
;;; 与える…ということはあるのでしょうか?
;;;
;;; それとも、そもそも3つ以上のJOIN処理が遅いのでしょうか?
まずは、EXPLAIN をしてみてはどうでしょう?
Kenji Sugita
pgsql-jp メーリングリストの案内