[pgsql-jp: 29489] Re: INSERTの速度UP に関して

Tadashi Kanbayashi Tadashi.Kanbayashi @ toppan.co.jp
2003年 3月 27日 (木) 19:43:00 JST


スギタ様

ありがとうございます。
KANです。

すいません。INSERTにではなく、
INSERT文中のSELECT文が遅いようでした。
そこで、一番時間がかかるケースで、
SELECT文のみを抽出してEXPLAIN ANALYZEで実行計画を取得してみました。

SQLと、実行計画をそのままお伝えするのが良いと思いましたが、
長すぎるので、かなり雑な情報ですが、ポイントになりそうな情報を
まずはお伝えします(これでは、わからないという話しかもしれませんがすいませ
ん)。

(1)INDEX SCANが選ばれているか
 →選ばれているようです(時間は要してません)。
(2)Merge Joinの回数
 →5回(約4000ミリ秒のものが4回と、約3800000ミリ秒のものが1回)ありま
す。
(3)Hash Joinの回数
 →3回(約5000ミリ秒のものが3回)あります。

以上より、テーブルを6個結合しているのですが、どうも、結合に関するとこで
時間がかかっているようです。

テーブル結合は、
FROM(((((((INNER JOIN・・・・) INNER JOIN ・・・) INNER JOIN
 ・・・) INNER JOIN・・・) INNER JOIN・・・) INNER JOIN・・・)
    INNER JOIN・・・
な感じで、複雑です(私が作ったものでないので余計に?です)。。。

正直、今、何から手をつけていいかがわからい状態です。

上記の説明で恐縮ですが、
どう、SQLチューニングを進めていったら良いかアドバイスをいただけないでしょう
か。

お願いします。

----- Original Message -----
送信者 : <sugita @ sra.co.jp>
宛先 : <pgsql-jp @ ml.postgresql.jp>
送信日時 : 2003年3月27日 1:26
件名 : [pgsql-jp: 29474] Re: INSERTの速度UP に関して


> From: "Tadashi Kanbayashi" <Tadashi.Kanbayashi @ toppan.co.jp>
> Subject: [pgsql-jp: 29473] INSERTの速度UP に関して
> Date: Wed, 26 Mar 2003 19:28:53 +0900
>
> ;;; 今、 カラム数が60個のテーブルに1レコードをinsertするのに、
> ;;; 約8秒かかります。
> ;;; このテーブルからselectする際は遅くないのですが、
> ;;; insertに時間がかかります。
> ;;;
> ;;; PostgreSQlのバージョンは7.2.3で、
> ;;; パラメータ等(postgresql.conf)はデフォルトのままです。
> ;;;
> ;;; 書きこみに関する設定に問題があるのでしょうか。
> ;;; マシンは、Netrat1 105です。
> ;;;
> ;;; まずは、 パラメータを調整してみようかと思います。
> ;;; どこを変更したら良い等、ご意見をいただけないでしょうか。
>
>   どのデータベースでも同じですが、パラメータ調整よりも前に、EXPLAIN (and
> ANALYZE) してクエリーがうまくいっているか調べるのが一番です。
>
>   パラメータ調整で改善できるのは基礎体力のみです。
>
>
> Kenji Sugita
>


---
T.Kan





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