tiempo reducir procesamiento plan optimización optimizacion optimas grandes ejemplos ejecución cxpacket consultas consulta sql sql-server sql-server-2008-r2 sqlconnection

reducir - procesamiento de consultas sql



¿SqlConnection procesa consultas en paralelo? (1)

Pregunta cargada, una respuesta definitiva es imposible porque como @LasseV.Karlsen ha declarado que SqlConnection no es seguro para subprocesos, por lo que el comportamiento será impredecible. Intenté escenarios similares en el pasado y fallé. Esto es lo que creo que sucederá con los parámetros en su pregunta.

¿SqlConnection procesa consultas en paralelo?

No, no sabe cómo porque no fue diseñado para esta tarea. Aunque es tentador el hecho de que es posible construir un proceso para usarlo de esta manera.

esas consultas se ejecutarán secuencialmente

Sí. Las consultas serán ejecutadas por el motor SQL en el orden recibido. Aunque su objeto de conexión probablemente no sepa a qué hilo pasar los resultados y obtendrá el temido ''error de referencia de objeto''.

¿Existe la posibilidad de que este nivel de aislamiento se aplique a otras consultas?

Sí. Si cambia el nivel de aislamiento del objeto de transacción asignado a su SqlConnection y luego uno de sus subprocesos intenta usar esa conexión, tendrá ese nivel de aislamiento de forma predeterminada. El momento en que un hilo secundario hará esto está fuera de tu control en este momento. Puede asignar una transacción por comando (y de ese modo alcanzar un nivel de aislamiento único como lo desee), pero igual tendrá el problema de que la conexión no es segura para subprocesos.

Si abro una SqlConnection a un Servidor SQL, y luego emito múltiples consultas desde múltiples hilos de fondo, todos usando esa conexión - ¿esas consultas se ejecutarán secuencialmente (no importa el orden)?

Específicamente, si al comienzo de una consulta cambio el nivel de aislamiento y luego lo restauro al final de esa consulta, ¿hay alguna posibilidad de que este nivel de aislamiento se aplique a otras consultas?

Creo que no, pero quiero confirmarlo.

SQL Server 2008 R2

Y estoy hablando de System.Data.SqlClient.SqlConnection