ADO.NET 연결 풀링 및 SQLServer
-
08-06-2019 - |
문제
- 그것은 무엇입니까?
- 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번 호출하는 경우 연결 풀링보다 훨씬 더 큰 문제가 발생합니다.
제휴하지 않습니다 StackOverflow