Paul,
Without knowing much about Oracle (although I can talk your ear off about Sybase), you
want to "cache" connections to the server and set a limit (maybe its 1!) and use this
pool of connections to connect to your server.
Major advantage:
No overhead for creating the connection on startup.
Major disadvantage:
Need to goto java afaik. Apache has some modules written for it to do something
like this, hit google. There maybe a dbi module that I am unaware of that can provide
this capability to your webserver via cgi/bin perl. Hit CPAN search.
Paul Appleby wrote on 10/18/2004, 7:57 PM:
> I realize I may not have been totally clear in my earlier post, which
> should have said:
>
> My CGI application will be called by different visitors to the web
> site at different times, but they all connect to the same database
> using the same connection variables, i.e. the same user/password.
> Are you saying the first visitor to the web site's connection can be
> left open for all the other visitors? How?
>
> Perhaps, though you understand it as such without this clarification.
>
> Paul
>
>
> >On Mon, Oct 18, 2004 at 04:39:25PM -0400, Paul Appleby wrote:
> > > My CGI application will be called by different users at different
> >> times. Are you saying the first user's connection can be left open
> > > for all the other users? How?
> >
> >Apart from the other (good) advice here, which you should follow first,
> >it is possible, with DBD::Oracle, to 'reauthenticate' a $dbh for a
> >different user. See the reauthenticate method in the docs.
> >
> >Tim.
> >
> >> Paul
> >>
> >> >Most people with experience with Oracle know that opening oracle
> >> >connections
> >> >is SLOW!
> > > >
> >> >Oracle does not appear to consider that a problem, just like they do not
> >> >consider slow performance for doing DDL a problem
> >> >
> >> >Applications that require near real time (OLTP) response times open
> >> >connections once, and hold open oracle connections across transactions.
> >> >This is true regardless of the language on the client side. That is why,
> >> >for instance, Websphere caches pooled connections in the java world.
> >> >
> >> >Lincoln
> >> >
> >> >
> >> >-----Original Message-----
> >> >From: Tim Bunce [mailto:[EMAIL PROTECTED]
> >> >Sent: Monday, October 18, 2004 12:06 PM
> >> >To: Paul Appleby
> >> >Cc: [EMAIL PROTECTED]
> >> >Subject: Re: Slow connection to Oracle 9i
> >> >
> >> >
> >> >On Mon, Oct 18, 2004 at 10:38:23AM -0400, Paul Appleby wrote:
> >> >>
> >> >> >DBD::Oracle::dr::load_dbnames is only called by data_sources()
> >> >> >so don't call data_sources() unless you really need to.
> >> >>
> >> >> I really do need to call data_sources() but the time it takes to
> >> >> retrieve data, as shown above, using "Time::HiRes" is only
> >> >> 0.0100140571594238 seconds. So that's not the issue.
> >> >
> >> >dprofpp showed it to take approx the same time as login:
> >> >
> >> >> %Time ExclSec CumulS #Calls sec/call Csec/c Name
> >> >> 21.6 0.090 0.090 1 0.0900 0.0900 DBD::Oracle::db::_login
> >> >> 21.6 0.090 0.159 1 0.0899 0.1592
> >> >> DBD::Oracle::dr::load_dbnames
> >> >> 21.6 0.090 0.159 6 0.0149 0.0265 main::BEGIN
> >> >
> >> >Anyway, I think there's little you can do from DBI to make Oracle
> >> >connections faster than you already have. Look to changes on the
> >> >Oracle side - for which other mailing lists (such as oracle-l) are
> >> >more suitable.
> >> >
> >> >Tim.
> >>
> >>
> >> --
> >> Sincerely,
> >>
> >> Paul Appleby
>
>
> --
> Sincerely,
>
> Paul Appleby
--
Your Friendly Neighborhood DBA,
Chuck