Следует ли избегать изоляции транзакции моментального снимка в клиентских приложениях ADO.NET?тогда какова была его основная цель? - PullRequest
0 голосов

Прочитав в [1]:

  • "Требование постоянного подключения к базе данных ограничивает масштабируемость изоляции SNAPSHOT, поэтому его не следует использовать в качестве общего средства реализации оптимистического параллелизма"

Я бы хотел понять:
Что такое постоянное соединение в ADO.NET?
Я просто не помню, чтобы при программировании приложений .NET я настраивал постоянство соединений с SQL Server.
Где это было?

Является ли "постоянное соединение" антонимом отключенного режима?

Какое значение имеет необходимость иметь постоянное соединение при кодировании клиентских приложений ADO.NET (например, в C #)?
Как использовать изоляцию транзакции моментального снимка в клиентских приложениях ADO.NET?
Какова его (уровни изоляции транзакции моментального снимка) основная целевая область взаимодействия?

Кроме того, я несколько запутался, прочитав, что большинство фреймворков и функций .NET, как, например, Linq2SQL, не поддерживают пессимистическую блокировку (ну, подсказки) ... но распределенные транзакции не поддерживаютизоляция моментальных снимков [2]

Следует ли избегать встроенных в SQL Server функций оптимистического параллелизма и заменять их поддержкой настраиваемых оптимистических (управление версиями) транзакций?
Опять же, для чего и почему они были введены в такие (труднодля меня понятно) реализация?

[1] Блог Дэна Гузмана.
Путаница с моделью параллелизма II
http://weblogs.sqlteam.com/dang/archive/2008/06/07/Concurrency-Model-Confusion-II.aspx
[2]
Почему изоляция моментальных снимков не поддерживается с помощью распределенных транзакций в SQL Server
Почему изоляция моментальных снимков не поддерживается с распределенными транзакциями в SQL Server
[3]
, когда предпочтительнее пессимистическая модель изоляции транзакций, чем оптимистичная?
, когда предпочитаетепессимистическая модель изоляции транзакций над оптимистической?

1 Ответ

1 голос
/ 05 ноября 2010

Хотя документация мне не совсем понятна, вот как я ее интерпретирую.Если у меня есть соединение в моем исключительном использовании, я могу использовать изоляцию моментальных снимков для реализации оптимистичного параллелизма, как я описал в этой статье: Разработка модификаций, которые сохраняют параллелизм .В случае конфликта вы получите сообщение об ошибке: «Транзакция изоляции моментального снимка прервана из-за конфликта обновления».

Однако, чтобы использовать этот подход, мы должны держать соединение открытым и не можем использовать пул соединений,Обратите внимание, что в некоторых средах незанятые соединения автоматически прерываются после некоторого периода простоя.

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