[pgsql-jp: 25123] Re: INSERT文に関して

sugita @ sra.co.jp sugita @ sra.co.jp
2002年 3月 7日 (木) 13:09:58 JST


  杉田です。

From: "Tadashi Kanbayashi" <Tadashi.Kanbayashi @ toppan.co.jp>
Subject: [pgsql-jp: 25121] Re: INSERT文に関して
Date: Thu, 7 Mar 2002 12:12:00 +0900

;;; my $sth = $dbh->prepare('INSERT INTO tbl VALUES(?, ?)');
;;; 
;;; のprepare句で、ある配列にinsert文を100個保持しておいて、
;;; その配列をprepareに食わせることも可能だと思いますけど、
;;; 
;;; @ins = (insert・・・ insert・・・ insert・・・ ・・・・・100個)
;;; my $sth = $dbh->prepare(”@ins”);
;;; 
;;; 素直に、
;;; my $sth = $dbh->prepare('INSERT INTO tbl VALUES(?, ?)');
;;; #以下のexecute文を繰り返し
;;; $sth->execute('a', 'b');
;;; $sth->execute('c', 'd');
;;; 
;;; のほうが良いでしょうか。

  データ量が多い場合には、実行速度を考えて、複数の INSERT よりも COPY table
FROM STDIN/putline/endcopy の方が格段に勝ります。Perl のサンプルコードが次のと
ころにあります。

    src/interfaces/perl5/example/

  一千万〜数億のレコードを入れるならば、10万〜100 万レコードの塊で扱えば大丈夫
です。


Kenji Sugita
sugita @ sra.co.jp



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