Есть, по крайней мере, два известных (потенциальных) недостатка (из этого (1) Блог команды ):
Очевидно, что это может вызвать потенциальные проблемы для любых унаследованных систем, которые не были спроектированы для работы с архитектурой, поддерживающей MARS - "существующий код, оптимизированный для работы в мире, отличном от MARS, может показать небольшое снижение производительности при запуске без изменений с MARS "
«С MARS вы можете отправлять на сервер несколько пакетов из нескольких операторов. Сервер будет чередовать выполнение таких пакетов, что означает, что если пакеты изменяют состояние сервера, например, с помощью операторов SET или USE, или используют операторы управления транзакциями TSQL (BEGIN TRAN, COMMIT, ROLLBACK), то и вы, и сервер можете запутаться о том, каково ваше настоящее намерение. ”
Мне еще предстоит опробовать дизайн с поддержкой MARS, но я очень близок к тому, чтобы сделать это в моем текущем проекте. У нас есть небольшая проблема с конкурирующими (и иногда зависимыми) операциями запроса (например, ленивая загрузка данных конфигурации из той же базы данных, которую выполняет активный набор записей).
Больше информации на сайте MSDN (2) здесь
[(1) http://blogs.msdn.com/sqlnativeclient/archive/2006/09/27/774290.aspx]
[(2) http://msdn.microsoft.com/en-us/library/ms131686.aspx]