2008-11-23 2 views
1

나는 다음을 수행하는 윈폼 응용 프로그램이 db 연결을 열어 두지 않아도됩니다. 이것은 우리가 매번 연결/끊어야하기 때문에 성능에서 어려움을 겪습니다.winforms가 SQL Server에 연결하는 데 이상적인 디자인입니다.</li> </ol> <p>우리가하려고하는 것처럼</li> <li>DB 쿼리를</li> <li>DB를 연결하거나 연결을 끊고</p> <ol> <li>DB : 각 쿼리에</p> <p>:

성능이 가장 빠르지 만 오랫동안 연결되어 있지 않은 이상적인 모델은 무엇입니까? 여기에 모범 사례가 있습니까?

답변

4

가장 효율적인 방법은 연결 풀링이며 연결을 종료하는 동안 ADO.NET does this automatically for you입니다. SqlConnection 개체를 using 문으로 마무리하면 걱정할 필요가 없습니다.

0

데이터 캐싱에 대해 생각해보십시오. 내 자신의 대략적인 테스트는 메모리 데이터를 쿼리하는 것이 데이터베이스에서 동일한 데이터를 쿼리하는 것보다 최대 20 배 빠르다는 것을 보여주었습니다. 이 방법이 스키마 나 데이터 요구 사항에 맞지 않을 수도 있지만 가능한 경우 자주 액세스하는 데이터를 어딘가에 캐싱하는 것이 좋습니다.

1

연결 풀링으로 연결/연결 해제시 약간의 오버 헤드가 입니다. 매우입니다. 귀하의 병목 현상은 DB 쿼리 자체이기 때문에 글로벌 연결을 유지하는 것은 도움이되지 않습니다.

쿼리가 너무 느리면 최적화를 시도하십시오. 그래도 작동하지 않으면 캐싱, 비동기 페치 또는 비정규 화가 발생할 것입니다. DB 연결을 유지하는 것에 대해 생각할 수있는 일반적인 사용 사례는 실제로 없습니다.