Re: Oraperl / DBD / Perl5 Performance for Oracle query?

From: Tim Bunce <Tim.Bunce_at_ig.co.uk>
Date: 1998/01/19
Message-ID: <En1F4w.By1_at_ig.co.uk>#1/1


[Quoted] In article <68r3rr$6hv$1_at_rdsunx.crd.ge.com>, Mark Kornfein <kornfein_at_.crd.ge.com> wrote:
>
> I've recently come on board a web project that uses the Oraperl emulation
> interface for DBD. The performance is horrible, a query that returns in 4-5
> seconds from sqlplus takes 50 seconds, This is just to do the "fetch"
> without calling any cgi scripts.
>
> The documentation hints at a "cache value" that one can set but then
> goes on to say that it not implemented yet. I should point out that the
> query is trival and just brings back a lot (about 1000) small rows (1 field)
> from Oracle.

There's no way that anything to do with the DBI or DBD::Oracle itself would cause such a slow down.

I'd hazzard a guess that this is the cause (from the README.help file):



Oracle 7.1 and 7.2: Connection takes a long time and may coredump  

Oracle bug number: 227321 related to changing the environment before connecting to oracle.

To work around this bug, do not set any environment variables in your oraperl script before you call ora_login, and when you do call ora_login, the first argument must be the empty string. This means that you have to be sure that your environment variables ORACLE_SID and ORACLE_HOME are set properly before you execute any oraperl script. It is probably also possible to pass the SID to ora_login as part of the username (for example, ora_login("", "SCOTT/TIGER_at_PROD", "")), although I have not tested this.
This workaround is based on information from Kevin Stock.


Tim. Received on Mon Jan 19 1998 - 00:00:00 CET

Original text of this message