Require 'dbi'$B!$G$&$^$/$f$+$J$$$H$-$,$"$j$^$9!#(B

e$B0pMU$H?=$7$^$9!#e(B
e$B$3$3$K<ALd$7$F$h$$$+G:$_$J$,$i!":$$C$?$3$H$,!"$*$-$?$N$G%a!<%k$5$;$F$$$?$@$-$^$9!#e(B

OSe$B$Oe(Bubuntu9.10e$B$r;H$C$F$$$^$9!#A0$N%P!<%8%g%s$+$i!":G6a!“e(B9.10e$B$K$7$^$7$?!#e(B
e$B$=$N$;$$$G!”;H$C$F$$$?%G!<%?%Y!<%9$Oe(BPostgreSQLe$B$,e(B8.3e$B$+$ie(B8.4e$B$K$J$j$^$7$?!#e(B

e$BOC$r$+$s$?$s$K$9$k$?$a!"Nc$rMQ0U$7$^$7$?!#e(B

#!/usr/bin/ruby
require ‘dbi’

begin
conn = DBI.connect(‘DBI:PG:testdb:localhost’, ‘test01’, ‘123456789’)
sql = "
CREATE TABLE t01
(
id serial NOT NULL PRIMARY KEY,
key integer
);"
sth = conn.prepare(sql)
sth.execute

for i in 0 .. 10000        # e$B$3$3$,e(B 10000 

e$B$G$O$J$/!"e(B100e$B$0$i$$$@$H%(%i!<$O$G$J$$!#e(B
num = rand(1000)
sql = "INSERT INTO t01(key) values(#{num}); "
sth = conn.prepare(sql)
sth.execute
puts i
end

end

e$B$H$$$&%W%m%0%i%$r<B9T$7$^$9$H!"e(B 0 1 .... 890 891 /usr/lib/ruby/1.8/dbd/pg/statement.rb:62:inexecute’: ERROR:
e$B=Hw$5$l$?J8e(B"ruby-dbi:Pg:70118378567060"e$B$O$9$G$KB8:_$7$^$9e(B (DBI::ProgrammingError) from /usr/lib/ruby/1.8/dbi/handles/statement.rb:116:inexecute’
from ich024-2.rb:19
from ich024-2.rb:15:in `each’
from ich024-2.rb:15

e$B$H8@$&$h$&$K%(%i!<$,I=<($5$l$^$9!#e(B
e$B0JA0$Ne(BPostgreSQL8.3e$B$G$O=P$J$+$C$?$H;W$$$^$9$,!"$3$N%(%i!<%a%C%;!<%8$O$I$&$9$l$P$h$$$+$o$+$j$^$;$s!#e(B
e$B$^$?!“e(B
for i in 0 … 10000
e$B$NItJ,$re(B
for i in 0 … 100
e$B$0$i$$$@$H%(%i!<$O=P$^$;$s!#e(B
e$B$J$K$+$^$:$$$3$H$7$F$$$k$H$+!”$4$>$s$8$J$$$G$7$g$&$+!)e(B
e$B$I$3$r$&$?$,$&$H$h$$$+@5D>J,$+$j$^$;$s!#e(B

e$B$J$K$+!"$I$3$,LdBj$J$N$+J,$+$j$^$7$?$i65$($F$$$?$@$1$J$$$G$7$g$&$+!)e(B
e$B:$$C$F$^$9!#e(B

Yuguie$B$G$9!#e(B

2009/11/25 Nobuyuki I. [email protected]:

e$B$3$3$K<ALd$7$F$h$$$+G:$_$J$,$i!“:$$C$?$3$H$,!”$*$-$?$N$G%a!<%k$5$;$F$$$?$@$-$^$9!#e(B

e$B$3$3$Oe(BRubye$B$=$l<+BN$N3+H/$K$D$$$FOC$9>l=j$G!“L@$i$+$K$3$3$K%a!<%k$9$Y$-$G$O$”$j$^$;$s$G$7$?!#e(B
Rubye$B=hM}7O$rMxMQ$7$Fe(BRubye$B%W%m%0%i%`3+H/$K$D$$$F$Oe(Bruby-liste$B$GAjCL$G$-$^$9!#e(B
e$B%a!<%j%s%0%j%9%H$N;H$$J,$1$K$D$$$F$O2<5-$r;2>H$7$F$/$@$5$$!#e(B
http://www.ruby-lang.org/ja/community/mailing-lists/

e$B$?$@!"6=L#$r;}$C$F$A$g$C$H8!:w$7$F$_$?$iEz$($i$7$-$b$N$r8+$D$1$^$7$?$N$G$*Ez$($7$^$9!#e(B

/usr/lib/ruby/1.8/dbd/pg/statement.rb:62:in execute': ERROR: e$B=Hw$5$l$?J8e(B"ruby-dbi:Pg:70118378567060"e$B$O$9$G$KB8:_$7$^$9e(B (DBI::ProgrammingError)
from /usr/lib/ruby/1.8/dbi/handles/statement.rb:116:in execute' from ich024-2.rb:19 from ich024-2.rb:15:in each’
from ich024-2.rb:15
(snip)
for i in 0 … 10000
e$B$NItJ,$re(B
for i in 0 … 100
e$B$0$i$$$@$H%(%i!<$O=P$^$;$s!#e(B

e$B$K;w$?Nc$,$“$j$^$9!#ITI,MW$K%5!<%P!<%5%$%I$Ne(BPrepared
statemente$B$r:n$C$F$$$k$N$GL>A0$,>WFM$7$F$$$kLOMM$G$9!#e(B
DBIe$B$Ne(BREADMEe$B$K$”$k$h$&$Ke(Bpreparee$B$K%V%m%C%/$rEO$7$F%j%=!<%9$r2rJ|$9$k$+!“$3$N$h$&$J>.$5$J%1!<%9$G$”$l$Pe(Bprepared
statemente$B$N;HMQ$r$d$a$k$+!“e(B
e$B$”$k$$$O%j%s%/@h$K$“$k$h$&$K%/%i%$%”%s%H%5%$%I$G$Ne(Bprepared
statemente$B$C$]$$$b$N$K@Z$jBX$($k$+$9$l$PNI$$$G$9!#e(B

e$B0JA0$Ne(BPostgreSQL8.3e$B$G$O=P$J$+$C$?$H;W$$$^$9$,!"$3$N%(%i!<%a%C%;!<%8$O$I$&$9$l$P$h$$$+$o$+$j$^$;$s!#e(B

e$B$h$/CN$j$^$;$s$,!“%P!<%8%g%s%”%C%W$G2?$+%Q%i%a!<%?$G$bJQ$o$C$F!“%j%=!<%98O3i$,H/8=$9$k%?%$%_%s%0$,JQ$o$C$?$N$G$7$g$&!#e(B
e$BMW$9$k$K!”:#$^$GF0$$$F$$$?$N$O$?$^$?$^$G$"$C$F!“85!9$3$N%W%m%0%i%`$K$OLdBj$,$”$C$?$H8@$&$3$H$G$9!#>e5-$N$h$&$K2r7h$9$k$HNI$$$G$7$g$&!#e(B

e$B2?$+<ALd$,$"$l$P!"e(Bruby-liste$B$K:FEYEj9F$7$F$/$@$5$$!#e(B

e$B?'!9$"$j$,$H$&$4$6$$$^$9!#e(B
dbie$B$r$$$m$$$m4V0c$($FM}2r$7$F$$$?$h$&$G$9!#e(B

sth = conn.prepare(sql)
sth.execute

e$B$H8@$&ItJ,$Oe(B
sth = conn.execute(sql)
e$B$HJQ99$7!"e(B

e$B$^$?!“e(B
sth.finish
e$B$rF~$l$k$h$&$K$7$^$7$?$i!”$&$^$/9T$-$^$7$?!#e(B

e$B$A$c$s$H@bL@$r$h$/FI$^$M$P$HDK46$7$^$7$?!#e(B

e$B$7$+$7e(B

e$B$O1Q8l$GJ,$+$j$^$;$s$G$7$?!#e(B

e$BM-Fq$&$4$6$$$^$7$?!#e(B