Re: Best connection management
- From: "William Vaughn" <billvaNoSPAM@xxxxxxxxx>
- Date: Thu, 13 Sep 2007 11:57:14 -0700
Ah no. The JIT approach derails (makes impossible) any number of data access strategies that can dramatically improve performance. I know, as I've used them to decrease query time by 90%. Since the application manages server-side objects like TempDB lookup tables (used in subsequent query JOINs), or server-side cursors where I didn't need to use disconnected data architectures, I was able to write far more efficient and suitable applications to support more users more quickly with less hardware. Yes, you can still build server-side cursors using ADO.NET (ANSI cursors) and no, they are not suitable for all applications. But consider that the vast majority of Windows Forms applications have to support 20-200 users, server-side cursors, use of TempDB table index products and other techniques that require a persistent connection make sense. Microsoft had apps that supported over 1000 users on a 386/33 using these techniques.And yes, these applications use multi-threading and in this case I simply open another connection.
--
____________________________________
William (Bill) Vaughn
Author, Mentor, Consultant, Dad, Grandpa
Microsoft MVP
INETA Speaker
www.betav.com
www.betav.com/blog/billva
Please reply only to the newsgroup so that others can benefit.
This posting is provided "AS IS" with no warranties, and confers no rights.
__________________________________
Visit www.hitchhikerguides.net to get more information on my latest book:
Hitchhiker's Guide to Visual Studio and SQL Server (7th Edition)
and Hitchhiker's Guide to SQL Server 2005 Compact Edition (EBook)
-----------------------------------------------------------------------------------------------------------------------
"Miha Markic" <miha at rthand com> wrote in message news:%23nsCnwd9HHA.3900@xxxxxxxxxxxxxxxxxxxxxxx
"William Vaughn" <billvaNoSPAM@xxxxxxxxx> wrote in message news:urZ4xKO9HHA.2004@xxxxxxxxxxxxxxxxxxxxxxxAs I have said many times before, this JIT connection strategy is a "best practice" for ASP architectures. It is not always (or even usually) the best choice for "connected" Windows Forms architectures. JIT precludes use of server-side state management which can dramatically improve query performance. Consider that each trip to the ConnectionPool requires the interface to reauthenticate your credentials and reset the connection--these operations are not free and totally unneeded with client/server architectures.
Sorry but this statement doesn't hold water. This is the best practice for winforms client/server apps, too.
1. There are usually not much separate db operations at all and thus visiting the connection pool once in a while is not a performance hit. OK, you can start nickpicking that you loose a millisecond in a day.
2. DB operation time compared to "performance hit" is so huge that "perf hit" might account for 0.00000000000000000000000000000000000001%.
3. When you do multithreading (which I assume you aren't) connection pool comes in as a great time saver.
4. It is easier to handle connection failures. If it fails due to network issue (or some other failure unrelated to logic), just (optionally clear the pool) repeat the operation, no additional code is required.
I am sure there are other benefits as well.
--
Miha Markic [MVP C#, INETA Country Leader for Slovenia]
RightHand .NET consulting & development www.rthand.com
Blog: http://cs.rthand.com/blogs/blog_with_righthand/
.
- Follow-Ups:
- Re: Best connection management
- From: Kerry Moorman
- Re: Best connection management
- References:
- Best connection management
- From: Hornet77
- Re: Best connection management
- From: Miha Markic
- Re: Best connection management
- From: Hornet77
- Re: Best connection management
- From: Miha Markic
- Re: Best connection management
- From: Hornet77
- Re: Best connection management
- From: Robbe Morris - [MVP] C#
- Re: Best connection management
- From: William Vaughn
- Re: Best connection management
- From: Miha Markic
- Best connection management
- Prev by Date: Re: Single Quote In A Text Field
- Next by Date: Re: Passing parameter to store SQL procedure ???
- Previous by thread: Re: Best connection management
- Next by thread: Re: Best connection management
- Index(es):
Relevant Pages
|