Недостатки MARS (множественные активные наборы результатов)? - PullRequest
76 голосов
/ 17 декабря 2008

Кто-нибудь знает о каких-либо недостатках MARS (множественных активных наборов результатов)? Кто-нибудь знает причину, по которой следует избегать использования MARS, например, случаи, когда курсоры более полезны, чем MARS.

Ответы [ 3 ]

56 голосов
/ 09 марта 2009

Есть, по крайней мере, два известных (потенциальных) недостатка (из этого (1) Блог команды ):

  1. Очевидно, что это может вызвать потенциальные проблемы для любых унаследованных систем, которые не были спроектированы для работы с архитектурой, поддерживающей MARS - "существующий код, оптимизированный для работы в мире, отличном от MARS, может показать небольшое снижение производительности при запуске без изменений с MARS "

  2. «С 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]

6 голосов
/ 17 декабря 2008
  • Требуется немного больше ресурсов сервера, чем за одно соединение.
  • Вы должны использовать SQL Server 2005 или более позднюю версию. Так что это может быть проблемой в устаревших (ack!) Средах.
3 голосов
/ 17 декабря 2008

в зависимости от чего? реальных недостатков нет.

они не поддерживают точки сохранения транзакций. но я не считаю это недостатком.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...