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 

Reply via email to