multipleactiveresultsets enable conexión con compatible sql-server-2005 mars

sql-server-2005 - enable - la conexión no es compatible con multipleactiveresultsets



Desventajas de MARS(Multiple Active Result Sets)? (3)

¿Alguien sabe de alguna desventaja de MARS (Multiple Active Result Sets)? ¿Alguien sabe de alguna razón por la que uno debe evitar el uso de MARS, como los casos en que los cursores son más útiles que MARTE.


¿dependiendo de qué? no hay desventajas reales

no admiten puntos de rescate de transacción. pero no pienso en esto como una desventaja.


Aparentemente hay al menos dos inconvenientes (potenciales) conocidos (de este (1) blog de equipo ):

  1. Obviamente, esto puede causar problemas potenciales para cualquier sistema heredado que no se diseñó para ejecutarse en un diseño habilitado para MARS: "el código existente optimizado para ejecutarse en el mundo que no es MARS puede mostrar una ligera disminución del rendimiento cuando se ejecuta sin modificaciones con MARS"

  2. "Con MARS puede enviar múltiples lotes de instrucciones múltiples al servidor. El servidor intercalará la ejecución de tales lotes, lo que significa que si los lotes cambian el estado del servidor mediante sentencias SET o USE, por ejemplo, o usan declaraciones de gestión de transacciones TSQL (BEGIN TRAN, COMMIT, ROLLBACK), tanto usted como el servidor pueden confundirse sobre cuál es tu intención real ".

Todavía tengo que probar un diseño compatible con MARS, pero estoy muy cerca de hacerlo en mi proyecto actual. Tenemos un ligero problema con las operaciones de consulta competidoras (ya veces dependientes) (como los datos de configuración de carga diferida de la misma base de datos que se está ejecutando un conjunto de registros activo).

Hay más información en el sitio de MSDN (2) aquí

[(1) http://blogs.msdn.com/sqlnativeclient/archive/2006/09/27/774290.aspx ]
[(2) http://msdn.microsoft.com/en-us/library/ms131686.aspx ]


  • Se necesita un poco más de recursos de servidor que hacer una conexión a la vez.
  • Debe ejecutar SQL Server 2005 o posterior. Entonces eso puede ser un problema en entornos heredados (¡ack!).