2010-06-21 19 views
9

Estoy tratando de determinar si tengo una fuga de conexión a la base de datos. Entonces necesito ver el número de conexiones abiertas. que tienen algún código de prueba simple que crea una fuga:¿Cómo se mide el número de conexiones de bases de datos abiertas?

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(); 
    } 

} 

cuenta que no hay .Close y esto lo hace de hecho accidente una vez ejecutada 3 veces en rápida sucesión.

el fin de medir la fuga Estoy funcionando el monitor de rendimiento y medir SQLServer: Estadísticas Generales Conexiones/usuario:

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

Sin embargo, estos parecen ser cero cuando corro mi código:

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

¿Qué debo cambiar para ver las conexiones en realidad?

RESPUESTA

he aprobado una respuesta más adelante. Aunque no utiliza las herramientas de rendimiento, es lo suficientemente bueno para mi uso. La conclusión es que quería ver cuántas conexiones permanecen abiertas después de abrir una página web y esto fue lo que hizo.

+0

¿Qué significa "ASP.NET SQL"? Si solo son dos etiquetas, déjelas fuera del título. –

Respuesta

5

puede intentar ejecutar una consulta en la principal db así:

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

Ver this link para más detalles.

2

¿Ha intentado ejecutar el proceso almacenado sp_who? Si hay conexiones abiertas obsoletas, deberían aparecer allí.

Para mostrar solo los procesos sa usuarios ejecutan:

EXEC sp_who 'sa' 
+0

¿Eso significa que no puedo ver las conexiones en el gráfico de rendimiento? – Petras

Cuestiones relacionadas