[pgsql-jp: 37715] Re: INDEX を残したまま大量データを高速に挿入したい

NAITO Masaaki hge03657 @ nifty.com
2006年 11月 22日 (水) 18:54:06 JST


内藤といいます。

元のデータがどのように供給されるか分かりませんが、データベース外で
ソートと集計をしたらどうでしょうか。

その上で、一時的な作業用のテーブルにインサートして、そこから
本番のテーブルに入れたら、早くならないでしょうか。

河本陽一 wrote:
> 
>  COPYのためのデータをどうやって作るのかが思いつきません。
> 
>  以下の条件での処理を考えます。
> 
> ●テーブル
> t1 (
>     tdata text,
>     tcnt  int
> );
> 
> ●データ
> aaaaa
> bbbbb
> ccccc
> ccccc
> aaaaa
> ccccc
> 
>  結果的に、以下の常態になることを望んでいます。
> 
> tdata  | tcnt
> -------+------
> aaaaa  |    2
> bbbbb  |    1
> ccccc  |    3
> 
>  データを順次読み込みますが、読み込んだデータが既存ならUPDATE用、な
> ければCOPY用となると思います。
>  その判断のためには、やはりDBに入れながらやるしかないかと思っていま
> す。
> 
>  三谷さんの言いたいことが理解できていないだけのような気がしますが、
> なにか上記のことが解決できるうまい方法があるのでしょうか。
> 
>  ちなみに、UPDATEの対象となるレコードは、同じトランザクション内のデー
> タに対してのみです。
>  キーに日付を含んでいるため、トランザクション以外のデータをUPDATEす
> ることはありません。
> 
> 
> ======================================================================
> 河本陽一(こうもとよういち)
> mailto:komoto.yoichi @ kcc.co.jp
> 
> 




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