[pgpool-general-jp: 851] Re: シーケンスを含むテーブルへのINSERTが遅い
Tatsuo Ishii
ishii @ sraoss.co.jp
2010年 11月 12日 (金) 17:55:25 JST
> 問題1:INTEGER型 + default nexyval('seqname') が悪い
>
> pg_catalog.apdsrc ~ 'nextval' から attname を取得して
> SERIAL型のシーケンス名を作っているようです。
>
> snprintf(seq_rel_name, MAX_SEQ_NAME, "%s_%s_seq", table, atrname);
>
> 今回の場合、シーケンス名はcreate sequence で指定した名前で、
> seq_rel_name と一致しませんでした。
>
> SERIAL型に変更したら、問題なく動きました。
すみません。こういう使い方は想定してませんでした。
> 問題2:table になぜかダブルクォーテーションがつく
>
> テーブル名 : tabname
> SERIAL型の列名: col
> とした場合、
>
> pgpoolが期待しているSQLは、おそらく
> SELECT 1 FROM tabname_col_seq FOR UPDATE;
> それが、なぜか
> SELECT 1 FROM "tabname"_col_seq FOR UPDATE;
> になります。
>
> ログに
> get_insert_command_table_name: extracted table name: "tabname"
> と出力されています。
>
> これが原因で、tabname を SELECTしているようで、応答が遅いみたいです。
>
>
> さて、SERIAL型への変更はよいとして、テーブル名はどうしようもなく、
> 困っております。
>
> get_insert_command_table_name()より中を見ていけば謎が解明できそうです。
>
> また、明日頑張ります。
お待たせしました。こちらの方の修正パッチを作りましたので、お試しいただ
けますでしょうか?
--
Tatsuo Ishii
SRA OSS, Inc. Japan
English: http://www.sraoss.co.jp/index_en.php
Japanese: http://www.sraoss.co.jp
-------------- next part --------------
テキスト形式以外の添付ファイルを保管しました...
ファイル名: pgpool.patch
型: text/x-patch
サイズ: 1748 バイト
説明: 無し
URL: http://www.sraoss.jp/pipermail/pgpool-general-jp/attachments/20101112/0b73fc6f/attachment.bin
pgpool-general-jp メーリングリストの案内