Pregunta

Estoy ejecutando una consulta simple contra SQL Server 2005:

protected static void InitConnection(IDbCommand cmd) {
        cmd.CommandText = "set transaction isolation level read uncommitted ";
        cmd.ExecuteNonQuery();            
    }

Cada vez que realizo un perfil con dotTrace 3.1, afirma que el método SNIReadSync está tomando entre 100 y 500 ms.

¿Qué tipo de cosas necesito estar buscando para bajar este tiempo?

¡Gracias!

¿Fue útil?

Solución

No lo he probado, pero me preguntaría si tiene el mismo problema si usó un TransactionScope con las opciones de IsolationLevel.Read Uncommitted. Tendría que encapsular su conjunto completo de llamadas y eso debería negar la necesidad de esta declaración. Me doy cuenta de que esta declaración no es su preocupación básica, sino en general.

Otra cosa que puedes hacer es crear una clase DBConnectionScope (o aprovechar la clase de un proveedor de confianza) y reducir el número total de conexiones que se abren.

Otros consejos

Asegúrese de que la agrupación de conexiones esté habilitada o recibirá una penalización significativa cada vez que se abra una conexión. En su conjunto de cadenas de conexión Agrupación = Verdadero, o elimine cualquier referencia a la agrupación. Creo que el valor predeterminado está habilitado.

Esto solucionó el problema para mí. Espero que te ayude a ti y a los demás.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top