That's a message for dbi-users. I've directed followups there.

Tim.

On Thu, Nov 21, 2002 at 09:25:13AM -0700, Jason E. Stewart wrote:
> Hey all,
> 
> I'd be grateful if someone could give me a reality check. I have 250k
> rows I want to insert into Postgres using a simple Perl script and
> it's taking *forever*. According to my simple timings, It seems to be
> only capable of handling about 5,000 rows/hr!!! This seems
> ridiculous. This is running on a pretty speedy dual processor P4, and
> it doesn't seem to have any trouble at all with big selects.
> 
> There are two prepared statements running concurrently, one that
> selects the next value of the master sequence, and the other that
> inserts a row into the DB.
> 
> Is this some DBD::Pg problem? Is this some Postgres problem (is it
> recalculating an index of every insert???)?
> 
> Any help appreciated.
> jas.
> 
> PS. Here's the loop:
> 
>   foreach my $row (@{$matrix}) {
>     $count++;
>     $seq_sth->execute()
>       or $dbh->error(@error_args,
>             message=>"Couldn't execute nextval from sequence $seq",
>             sth=>$seq_sth,
>             sql=>$seq_sql);
>     my $pkey = $seq_sth->fetchrow_arrayref();
>     $dbh->error(@error_args,
>             message=>"Couldn't fetch nextval from sequence $seq",
>             sth=>$seq_sth,
>             sql=>$seq_sql)
>       unless defined $pkey && $pkey->[0];
> 
>     $sth->execute(@{$row},$pkey->[0])
>       or $dbh->error(@error_args,
>             message=>"Couldn't execute insert sql with args: "
>             . join(',',@{$row},$pkey->[0]),
>             sth=>$sth,
>             sql=>$sql);
> 
>   }
> 
> $seq_sth is running a select on a master sequence: 
> 
>    SELECT nextval('"GENEX_ID_SEQ"'::text)
> 
> and $sth is running an insert: 
> 
>   INSERT INTO Reporter (name,con_fk,ro_grp,rw_grp,type,rep_pk) VALUES  (?,?,?,?,?,?)
> 
> 
> 
> 

Reply via email to