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

sugita @ sra.co.jp sugita @ sra.co.jp
2003年 3月 31日 (月) 13:44:09 JST


  杉田です。

From: "Tadashi Kanbayashi" <Tadashi.Kanbayashi @ toppan.co.jp>
Subject: [pgsql-jp: 29516] Re: INSERTの速度UP に関して
Date: Mon, 31 Mar 2003 12:04:32 +0900

;;; 以下の件ですが、動作しました。
;;; 結果も変わりませんでした。
;;; 処理時間は相変わらず遅く、約75分かかりました。
;;; 
;;; しかし、文法的に正しいのでしょうか?

  文法的には、いいのではないですか? 行うことが変わらないので、処理時間は変わ
らないです。 

;;; どうもJOINの書き方がプランナを混乱させている気がするのですが?。

  どう混乱しているのでしょう? 同じことをして同じだけの時間がかかっているので
はないのですか?

;;; とりあえず、JOINを使わないようにすると約3分で結果が返ってくるので、
;;; JOINを使わないSQLに書き換えようと思いますが、それでも約3分かかります。
;;; INDEXをはること以外で、何か策はないでしょうか。

  まずは、EXPLAIN/EXPLAIN ANALYZE して、インデックス使用などでプランに改善の余
地があるかを考えるのがいいんじゃないでしょうか?

;;; テーブル結合の処理の高速化としては、
;;; (1)プランナ任せ(コストベース)
;;; (2)INDEXの追加
;;; (3)JOINで結合手順を強制的にいじる(ルールベース)
;;; で行ない、それでもだめそうな場合は、SQLを分割(処理をわける)することが必要
;;; でしょうか。

  (3) は、優先順位を下げたい気がします。

  さらに、単独のクエリーでの改善で突き当たったら、そのクエリーを含む処理全体の
見直し、テーブル設計の見直し、アプリ ケーション側の努力というのもありそうです。

;;; どんなSQLでも、高速化の限界はあると思いますが、そのときの目安(閾値)が
;;; あれば教えていただきたく。
;;; 
;;; ちなみに、結合しているテーブルの規模は以下の通りです。
;;; t_cidinf:6990
;;; t_contopen:50679
;;; t_cpinf:130
;;; t_cpshare:248
;;; t_miminf:249
;;; t_payinf:102
;;; t_tidinf:295
;;; t_paycid:3271
;;; t_paycidgroup:6986
;;; t_hanroinf:21
;;; t_shimebi:80
;;; t_bill_detail:150548

  クエリーがどのようなものになるか分からないので、典型的なクエリーを用意して、
検証するのがいいと思えます。


Kenji Sugita                                      



     
     



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