Re: mssql_* overhead

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



I thought the same thing as Jochem... that resources like database connections, couldn't be stored in $_SESSION. You say that's how you have (had?) it set up and it was working, but still sounds wrong to me.

As for connections.. definitely don't open a new connection every time you run a function, unless it's run so rarely that it makes it more efficient to open and close within the function.   If it's a function run many times, you're definitely going to see a performance hit.

Typical procedure (at least how I've seen it done and done it myself at a few different jobs) is to open the connection once and close it once.  Which sounds like what you're doing now.

So was your question answered?   Sounds like there's still some lingering questions or curiosities...

-TG

= = = Original message = = =

On Jan 10, 2007, at 10:09 AM, Jochem Maas wrote:

> Philip Thompson wrote:
>> Hi.
>>
>> Does anyone know if the mssql_connect/_init/_bind/etc require a  
>> lot of
>> overhead?
>>
>> I have a page that requires multiple function calls and each of those
>> opens a new connection to the database, performs the necessary  
>> actions
>> in stored procedure(s), and then closes the connection. However, I  
>> found
>> this to be slower than I was wanting. So I thought, just create one
>> connection and assign it to the SESSION (a global), and in each  
>> function
>> that requires a connection, call that SESSION variable. At the end of
>> the page, close the connection and nullify the variable.
>
> I wouldn't stick it in the SESSION superglobal (my tactic is  
> usually to create
> a little wrapper class to the relevant DB functions and store the  
> connection
> as a property of the class/object.
>
> basically opening & closing the connection once per request is the  
> way to
> go - if your going to using a global, better [than $_SESSION] to  
> stick it
> in $GLOBALS imho.

Would there be any speed decrease with multiple users (hundreds)  
sharing this $GLOBALS variable (if that makes sense)?


> $_SESSION is used for persisting data over multiple requests -  
> something that
> is not possible to do for 'resource identifiers' (which is what the  
> connection [id] is).

BTW, it does work b/c that's how it's currently setup. I am open to  
changing it though. I should say, I'm creating at the beginning of  
the script and closing it at the end. So, it doesn't actually stay  
open throughout the whole user session.


>> Does anyone see a problem with doing it this way? Security concerns?
>> Anything?
>>
>> Thanks in advance,
>> ~Philip


___________________________________________________________
Sent by ePrompter, the premier email notification software.
Free download at http://www.ePrompter.com.

-- 
PHP General Mailing List (http://www.php.net/)
To unsubscribe, visit: http://www.php.net/unsub.php


[Index of Archives]     [PHP Home]     [Apache Users]     [PHP on Windows]     [Kernel Newbies]     [PHP Install]     [PHP Classes]     [Pear]     [Postgresql]     [Postgresql PHP]     [PHP on Windows]     [PHP Database Programming]     [PHP SOAP]

  Powered by Linux