Кто-нибудь знает какие-либо недостатки MARS (Множественные активные результаты)? Кто-нибудь знает о какой-либо причине, почему следует избегать использования MARS, например, случаи, когда курсоры более полезны, чем MARS.
Недостатки MARS (несколько активных наборов результатов)?
Ответ 1
По-видимому, по крайней мере два известных (потенциальных) недостатка (из этого (1) Блог команды):
-
Очевидно, что это может вызвать потенциальные проблемы для любых устаревших систем, которые не предназначены для работы с проектом с поддержкой MARS. "Существующий код, оптимизированный для работы в мире, отличном от MARS, может показывать небольшое снижение производительности при запуске un -модифицировано с помощью 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
Ответ 2
- Требуется немного больше ресурсов сервера, чем одно соединение за раз.
- Необходимо запустить SQL Server 2005 или более позднюю версию. Таким образом, это может быть проблемой в устаревшей среде (ack!).
Ответ 3
в зависимости от того, что? нет реальных недостатков.
они не поддерживают точки сохранения транзакций. но я не считаю это недостатком.