[pgsql-jp: 29493] Re: INSERTの速度UP に関して
sugita @ sra.co.jp
sugita @ sra.co.jp
2003年 3月 28日 (金) 17:28:38 JST
杉田です。
From: "Tadashi Kanbayashi" <Tadashi.Kanbayashi @ toppan.co.jp>
Subject: [pgsql-jp: 29492] Re: INSERTの速度UP に関して
Date: Fri, 28 Mar 2003 16:08:26 +0900
;;; そこで質問ですが、この場合、
;;; FROM句にテーブルをカンマ区切りで羅列して、
;;; WHERE句に結合条件を記述するで良いでしょうか。
はい、そうです。
;;; とりあえず、単純に試したところ、60分掛かっていたのが50秒で
;;; 返ってきました・・・。JOINを使うより、まずは、プランベースにお任せでやった
;;; ほうが
;;; 良いのでしょうか。
まずは、サーバに任せるのがいいのではないかと考えています。
;;; JOINを使用したFROM句の書き方ですが、
;;;
;;; FROM
;;; (テーブルA INER JOIN テーブルB ON テーブルA.カラム1 = テーブルB.カ
;;; ラム1)
;;; INER JOIN テーブルC ON テーブルA.カラム2 = テーブルC.カラム2
;;; INER JOIN テーブルD ON テーブルC.カラム3 = テーブルD.カラム3
;;; LEFT JOIN テーブルE ON テーブルD.カラム4 = テーブルE.カラム4
;;; AND テーブルE.カラム5 = テーブルA.カラム5
;;; AND テーブルE.カラム6 = テーブルB.カラム6
;;;
;;; のように、 書けるでしょうか。
;;; 3つ以上のテーブルの結合の場合は、括弧でくくったINERを1テーブルとみなして
;;; 結合させる
;;; と思うので、書けないと思えるのですが、psqlで実行する際にエラーになりませ
;;; ん。
エラーにならなかったのをそのまま見せてもらえますか?
;;; 例えば、上記のような書き方が、処理速度に影響を与えるということもあるでしょ
;;; うか。
EXPLAIN/EXLAIN ANALYZE、7.3 以上ならば psql の \timing で実測して確認するの
がいいと思います。実行していないクエリーは何をするか分かりません。
Kenji Sugita
pgsql-jp メーリングリストの案内