NHibernate, я должен использовать ReadCommitted или ReadUncommited Уровень изоляции транзакции? - PullRequest
6 голосов
/ 03 апреля 2011

В крупном бизнесе следует ли по умолчанию использовать уровень изоляции транзакций ReadCommitted или ReadUncommited при использовании NHibernate?

Используя изоляцию ReadCommitted, я столкнулся с некоторой блокировкой операторов SELECT (Query), которые становятся медленными.

Ответы [ 2 ]

8 голосов
/ 04 апреля 2011

Что ж, если вы используете SqlServer и у вас есть проблемы с тайм-аутами / блокировками ReadCommitted, это легко объяснимо. Вы, вероятно, просто должны запустить это:

ALTER DATABASE your_db SET SINGLE_USER WITH ROLLBACK IMMEDIATE ;
ALTER DATABASE your_db SET READ_COMMITTED_SNAPSHOT ON;
ALTER DATABASE your_db SET MULTI_USER;

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

5 голосов
/ 03 апреля 2011

Суть вопроса:

Должен ли я использовать уровень изоляции транзакций ReadCommitted или ReadUncommited?

Ну, они могут дать разные результаты.Итак, вы на самом деле спрашиваете:

Могу ли я использовать разные наборы результатов, когда это быстрее?

Ответ зависит от приложения, решать может только вы.Но в целом клиенты, особенно крупные компании, не очень терпимы к этому.

...