문제

  • 그것은 무엇입니까?
  • MS SQL로 연결 풀링을 어떻게 구현합니까?
  • 다음과 같은 경우 성능에 어떤 영향이 있습니까?
    • 많은 쿼리를 차례로 실행(예:저장 프로시저를 호출하는 30K 이상의 반복이 있는 루프를 사용합니까?
    • 오랜 시간(10분 이상)이 소요되는 몇 가지 쿼리를 실행하시나요?
  • 모범 사례가 있습니까?
도움이 되었습니까?

해결책

연결 풀링은 새 연결 설정이 느리기 때문에 연결을 재사용하는 메커니즘입니다.

MSSQL 연결 문자열과 System.Data.SqlClient를 사용하는 경우 이미 이를 사용하고 있는 것입니다. .Net에서는 이 내용이 대부분 내부에 있습니다.

30,000회 반복 루프는 sproc 외부의 각 단계에서 수행 중인 작업에 따라 서버 측 커서(T-SQL 커서 문 조회)로 사용하는 것이 더 나을 수 있습니다.

긴 쿼리는 괜찮습니다. 하지만 Asp.Net은 실제로 긴 대기 시간에 최적화되어 있지 않으며 일부 연결이 끊어지므로 웹 페이지에서 쿼리를 호출할 때 주의하세요.

다른 팁

연결 풀링에 대한 추가 정보...이미 SqlClient와 함께 사용하고 있지만, 새로 여는 각각의 연결에 대해 연결 문자열이 동일한 경우에만 가능합니다.내가 이해하는 바는 프레임워크가 가능할 때 자동으로 연결을 풀링한다는 것입니다. 그러나 연결 문자열이 한 연결에서 다음 연결까지 약간이라도 달라지면 새 연결은 풀에서 나오지 않고 새로 생성됩니다(따라서 비용이 더 많이 듭니다). ).

XP/Vista에서 성능 모니터 앱을 사용하여 SQL 연결을 관찰하면 풀링이 사용되는지 여부를 매우 빠르게 확인할 수 있습니다.성능 모니터에서 ".NET CLR 데이터" 범주"를 살펴보세요.

나는 두 번째 Keith입니다.저장 프로시저를 30,000번 호출하는 경우 연결 풀링보다 훨씬 더 큰 문제가 발생합니다.

귀하의 질문에 의해 부분적으로 답변되었습니다. 이 스레드.검색해보면 이런게 나올텐데..Connection Pooling의 정의는 다음과 같습니다. Google 첫 번째 히트로 대답했을 것입니다 이것..

모범 사례만 남겨두면 좋은 질문이 될 것 같습니다. :)

+1 키스의 답변.그는 머리에 바로 못을 박았습니다.

FAQ에서 정중하게 상기시켜 드립니다.

질문을하기 전에 인터넷을 검색했으며 질문에 대한 연구와 정보로 무장 한 우리에게옵니다 ...오른쪽?

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top