c# - enable - MultipleActiveResultSets=¿Conexiones verdaderas o múltiples?
la conexión no es compatible con multipleactiveresultsets (3)
Tengo un C # en el que creo un lector en una conexión ( ExecuteReader
), luego, para cada fila en ese lector, realizo otro comando (con ExecuteNonQuery
). En este caso, ¿es mejor que use MultipleActiveResultSets=True
en mi conexión o use conexiones múltiples?
Hasta donde sé, la razón por la que se agregó MARS, entonces sí, creo que deberías usarla.
La mejor forma de probar esto es iniciar SQLServer Profiler y ver qué sucede realmente en el servidor.
Mi suposición es que no será mejor ya que estás usando ExecuteNonQuery (). Entonces, de hecho, no trabajas con resultados múltiples.
Se han agregado varios Conjuntos de resultados activos (MARS) específicamente para este tipo de operación, por lo que no es necesario tener dos conexiones abiertas al mismo tiempo para poder leer desde un SqlDataReader Y ejecutar lotes adicionales.
MARS es compatible con SQL Server 2005 y versiones posteriores. Para citar desde documentos de MSDN:
Antes de la introducción de Conjuntos de resultados múltiples (MARS), los desarrolladores tenían que usar múltiples conexiones o cursores del lado del servidor para resolver ciertos escenarios.
Para obtener más información, consulte:
Ejemplo trabajado de lectura y actualización de datos:
MSDN Library - Manipulating Data (MARS) baje hasta ''Leer y actualizar datos con MARS''