sql >> Base de Datos >  >> RDS >> Sqlserver

¿Desventajas de MARS (Multiple Active Result Sets)?

Aparentemente, hay al menos dos inconvenientes conocidos (potenciales) (de este (1) Blog del equipo ):

  1. Obviamente, esto puede causar problemas potenciales para los sistemas heredados que no fueron diseñados 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 caída en el rendimiento cuando se ejecuta sin modificar con MARTE"

  2. “Con MARS puede enviar múltiples lotes de estados de cuenta múltiples al servidor. El servidor intercalará la ejecución de dichos lotes, lo que significa que si los lotes cambian el estado del servidor a través de declaraciones SET o USE, por ejemplo, o usan declaraciones de administració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 pequeño problema con las operaciones de consulta en competencia (y a veces dependientes) (como la carga diferida de datos de configuración de la misma base de datos que está ejecutando un conjunto de registros activo).

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

[ (1) https://web.archive.org/web/20190911155929/https://blogs.msdn.microsoft.com/sqlnativeclient/2006/09/27/using- mars-con-sql-native-client/ ]
[ (2) http://msdn.microsoft. com/en-us/library/ms131686.aspx ]