Beefy Boxes and Bandwidth Generously Provided by pair Networks
Syntactic Confectionery Delight
 
PerlMonks  

Re^3: Tricks with DBI

by mpeppler (Vicar)
on Sep 20, 2004 at 06:31 UTC ( #392298=note: print w/ replies, xml ) Need Help??


in reply to Re^2: Tricks with DBI
in thread Tricks with DBI

I have to admit that I haven't really tested prepare_cached with DBD::Sybase. I suspect that in certain situations this might still open multiple connections, primarily if DBD::Sybase doesn't realize that a particular query is "finished" before running another one.

If I have the time I'll run a few tests to see what the deal is - and maybe add an override for prepare_cached in DBD::Sybase to avoid any bad surprises.

Update: After thinking about this a little more, I want to add that with Sybase prepare_cached is really only useful for statements that include placeholders. Any other statement won't really get cached anyway, and doesn't actually get parsed/compiled/optimized until you call DBI's execute().

Michael


Comment on Re^3: Tricks with DBI
Replies are listed 'Best First'.
Re^4: Tricks with DBI
by Anonymous Monk on Dec 24, 2005 at 16:46 UTC
    I'm using Class::DBI in conjunction with Class::DBI::Sybase. When using these modules they default to using prepare_cached for every query, and there is not an easy way to make them NOT to cache. I got it to work but by changing the Class::DBI code, which isn't good... Is there a way to force no caching, perhaps in a connection attribute?
      Not at the moment - though DBD::Sybase could be patched to alias prepare_cached() to prepare(). This would avoid the whole problem and disable prepare_cached().

      In DBD::Sybase's Sybase.pm, right after the definition of prepare() (in the DBD::Sybase::db package)

      *prepare_cached = *prepare;
      That way any call to DBD::Sybase::db::prepare_cached() will really call prepare() instead.

      Michael

        Thanks for the suggestion Michael. I'll stick with modifying Class::DBI since that seems less of a sin than modifying DBD::Sybase. In addition, we have many more dependencies on DBD::Sybase then on Class::DBI, which we're just introducing... Thanks again!

Log In?
Username:
Password:

What's my password?
Create A New User
Node Status?
node history
Node Type: note [id://392298]
help
Chatterbox?
and the web crawler heard nothing...

How do I use this? | Other CB clients
Other Users?
Others lurking in the Monastery: (16)
As of 2015-07-31 13:25 GMT
Sections?
Information?
Find Nodes?
Leftovers?
    Voting Booth?

    The top three priorities of my open tasks are (in descending order of likelihood to be worked on) ...









    Results (277 votes), past polls