у нас есть сайт ASP.NET с базой данных SQL2008.
Я пытаюсь реализовать транзакции в нашей текущей системе.
У нас есть метод, который вставляет новую строку в таблицу (Table_A), и он отлично работает с транзакцией.Если выброшено исключение, оно выполнит откат.
Моя проблема в том, что другой пользователь не может делать ничего, что одновременно вызывается с Table_A - возможно, потому что он заблокирован.
Я могу понять, почему транзакция должна заблокировать новую строку, но я не хочу, чтобы она блокировала всю таблицу - заставляя user_B ждать завершения user_A.
Я попытался установить уровень изоляции ReadUncommitted и Serializable.в транзакции, но это не сработало.
Поэтому мне интересно, нужно ли мне также переписать все мои методы выбора, чтобы они могли выбирать все строки, кроме новой строки, которая есть вmake?
Пример:
- В таблице T есть 10 строк (записей?)
- Пользователь A вставляет новую строку в таблицу T. Это занимает некоторое время.
- В то же время, пользователь B хочет выбрать 10 строк, и ему наплевать на новую строку.
Так что я думаю, что мне как-то нужно переписать select пользователя Bзапрос от "выбрать все запрос" до "выбратьвсе строки, которые не связаны с запросом транзакции ".:)
Любые советы очень ценятся, спасибо.