2010-06-21 5 views
9

데이터베이스 연결 유출 여부를 확인하려고합니다. 그래서 열려있는 연결 수를 확인해야합니다.개방형 데이터베이스 연결 수를 측정하는 방법

protected void Page_Load(object sender, EventArgs e) 
{ 
    for(int i = 0; i < 100; i++) 
    { 
    SqlConnection sql = new SqlConnection(@"Data Source=.\SQLExpress;UID=sa;PWD=fjg^%kls;Initial Catalog=ABC"); 
    sql.Open(); 
    } 

} 

주 더 .Close이없는이 빠른 연속 실행 3 회 된 후 가리키고 충돌을 수행 나는 누출을 만들어 몇 가지 간단한 테스트 코드가 있습니다.

을 :

alt text http://www.yart.com.au/stackoverflow/counter.png

그러나, 이러한 내 코드를 실행하면 제로 것 같다 : 일반 통계/사용자 연결 : 나는 성능 모니터를 실행하고 SQLServer를 측정하고 누출을 측정하기 위하여

alt text http://www.yart.com.au/stackoverflow/counter1.jpg

실제로 연결을 보려면 어떻게 변경해야합니까?

내가 아래에 답을 승인

답변. 성능 도구를 사용하지는 않지만 사용하기에 충분합니다. 결론은 웹 페이지를 연 후에 얼마나 많은 연결이 열려 있는지보고 싶었고 이것이 트릭이었습니다.

+0

"ASP.NET SQL"은 무엇을 의미합니까? 그것이 단지 두 개의 태그라면, 제목의 그것들을 그대로 두십시오. –

답변

5

당신은이 같은 DB를 마스터에 대해 쿼리를 실행 시도 할 수 있습니다 :

SELECT SPID, 
     STATUS, 
     PROGRAM_NAME, 
     LOGINAME=RTRIM(LOGINAME), 
     HOSTNAME, 
     CMD 
FROM MASTER.DBO.SYSPROCESSES 
WHERE DB_NAME(DBID) = 'TEST' AND DBID != 0 

은 자세한 내용은 this link를 참조

그냥 sa 사용자 프로세스가 실행 표시합니다.

2

sp_who 저장된 프로 시저를 실행 해 보셨습니까? 부실 연결이 열려 있으면 거기에 나타나야합니다.

EXEC sp_who 'sa' 
+0

성능 그래프에서 연결을 볼 수 없다는 뜻입니까? – Petras

관련 문제