Det finns tydligen minst två kända (potentiella) nackdelar (från denna (1) Teamblogg ):
-
Uppenbarligen kan detta orsaka potentiella problem för alla äldre system som inte var designade för att köras mot en MARS-aktiverad design - "befintlig kod optimerad för att köras i icke-MARS-världen kan visa en liten prestandanedgång när den körs oförändrad med MARS"
-
“Med MARS kan du skicka flera multi-statement batcher till servern. Servern kommer att interfoliera exekvering av sådana batcher, vilket innebär att om batcharna ändrar serverstatus via SET- eller USE-satser, till exempel, eller använder TSQL-transaktionshanteringssatser (BEGIN TRAN, COMMIT, ROLLBACK), kan både du och servern bli förvirrade om vad din egentliga avsikt är.”
Jag har ännu inte provat en MARS-aktiverad design, men jag är väldigt nära att göra det i mitt nuvarande projekt. Vi har ett litet problem med konkurrerande (och ibland beroende) frågeoperationer (som lat inläsning av konfigurationsdata från samma databas som en aktiv postuppsättning kör).
Det finns mer information på MSDN-webbplatsen (2) här
[ (1) https://web.archive.org/web/20190911155929/https://blogs.msdn.microsoft.com/sqlnativeclient/2006/09/27/using- mars-med-sql-native-client/
]
[ (2) http://msdn.microsoft. com/en-us/library/ms131686.aspx
]