우리는 C# 클라이언트, C# WCF 웹 서비스 계층 및 SQL Server 데이터베이스가있는 3 계층 응용 프로그램을 사용합니다. 웹 서비스는 ADO.NET을 사용하여 데이터베이스에 연결합니다. 모든 C# 코드는 .NET Framework 2.0을 사용합니다.ADO.NET 연결 열기 시간 모니터링
최근 고객이 애플리케이션에 스트레스 테스트를 수행했습니다. 테스트하는 동안 웹 서버는 다음과 같은 많은 오류를 생성했습니다.
연결 문자열 '...'에 대해 데이터베이스에 연결할 수 없습니다. 제한 시간이 만료되었습니다. 작업이 완료되기 전에 시간 초과 기간이 경과되었거나 서버가 응답하지 않습니다.
연결 풀이 꽉 찼을 때 연결 오류를 잡아 연결 풀 외부에서 연결을 시도하는 방법이 있음을 알고 있습니다. 또한 튜닝해야 할 몇 가지 쿼리를 발견했지만 웹 서버 연결 시간 초과를 설명하지는 않습니다.
웹 서버가 데이터베이스에 연결하는 시간 초과 이유를 파악하려고합니다. ADO.NET performance counters을 모두 사용하도록 웹 서버를 설정했습니다. 그러나 연결에 필요한 시간이나 연결 제한 시간 등과 관련된 내용은 표시되지 않습니다. 이상적으로는 다른 ADO.NET 카운터 옆의 perfmon
에 연결 시간을 그래프로 나타낼 수 있습니다.
연결을 획득 할 때 ADO.NET 성능을 모니터링하는 방법이 있습니까?
연결을 열려고 시도 할 때마다 "평균 연결 열기 시간"성능 카운터를 만들 수 있다고 생각하지만 이미 존재하는 것을 사용하고 싶습니다.
SQL 프로파일 러는 이와 관련하여 도움이 될까요? –
@MrMose : 프로파일 러는 문제 쿼리를 찾는 데 많은 도움이되었습니다. 그러나 연결 시간을 모니터링하여 그들이 언제 올라 가기 시작하는지 그리고 시간이 초과되는지 알 수있는 뭔가가 필요합니다. –