> Craig, I agree with everything you stated. > > What if I change one of your assumptions - and it only took > .006 seconds to open (and close) a database connection. > Would that change your architecture?
Interesting. First of all, 0.006 seconds is still pretty damn slow. Think of it in terms of instructions: a 1GHz processor can do like SIX MILLION instructions in that time. I realize that this is a pretty appallingly worthless figure, but you get the idea - that the human scale of "fast" is pretty meaningless when applied to computers. Now, that said, I would still argue that connection pooling is *super* valuable. Even without a performance advantage to pooled connections, consider that having the mid-tier means that the number of connections to the database is equal to the number of clients that are doing something *at the moment*, not *the total number of clients*, as would be the case in a non-pooled scenario. Consider that database connections represent both time and resources, and optimizing them downward makes sesnse. Also consider roundtrips: make a connection, send a command, break a connection is three network roundtrips. Suckola! In the face of (even inefficient) pooling, this goes down to an average of slightly higher than one. You can read messages from the Advanced DOTNET archive, unsubscribe from Advanced DOTNET, or subscribe to other DevelopMentor lists at http://discuss.develop.com.
