Не впевнені, чому ви не обертаєте фінансові трансакції в транзакціях з базами даних (як, наприклад, при переказі коштів з одного рахунку на інший - ви не здійснюєте одночасно одну сторону транзакції - саме тому існують явні транзакції). Навіть якщо ваш код наголошується на бізнес-транзакціях, як це здається, всі транзакційні бази даних можуть робити неявні зворотні звороти у випадку помилок чи збоїв. Я думаю, що це обговорення перевершило вашу голову.
Якщо у вас виникають проблеми із блокуванням, застосуйте версію та очистіть код.
Жоден замок не тільки повертає неправильні значення, він повертає фантомні записи та дублікати.
Поширена помилкова думка, що вона завжди робить запити швидшими. Якщо на столі немає блоків запису, це не має ніякого значення. Якщо на столі є замки, це може зробити запит швидше, але є причина, що в основному були винайдені замки.
Справедливо кажучи, ось два особливих сценарії, коли натяк на блокування може забезпечити корисність
1) Серверна база даних до 2005 р., Якій потрібно виконувати довгий запит проти живої бази даних OLTP, це може бути єдиним способом
2) Погано написана програма, яка блокує записи та повертає контроль до інтерфейсу користувача та читачів, безстроково блокується. Тут може бути корисним Nolock, якщо додаток неможливо виправити (сторонні програми тощо), а база даних - до 2005 року, або версія версії не може бути включена.