У меня большая база данных (~ 4 ГБ), с 2 большими таблицами (~ 3M записей), имеющими ~ 180K SELECTs / час, ~ 2k UPDATEs / час и ~ 1k INSERTs + DELETEs / час.
Каков наилучший способ гарантировать отсутствие блокировок для задач чтения при вставке / обновлении / удалении?
Я думал об использовании подсказки NOLOCK, но об этом так много говорят (хорошо, плохо, это зависит), что я немного растерялся. Должен сказать, что я попробовал это в среде разработчиков и не обнаружил никаких проблем, но я не хочу запускать его в производство, пока не получу какую-то обратную связь ...
ОБНОВЛЕНИЕ : Я уточняю это после получения комментария - из-за бизнеса, связанного с этим приложением, я не возражаю, если запись SELECTed устарела из-за одновременного удаления / обновления. Следующее чтение вернет новое, и это нормально.
ОБНОВЛЕНИЕ 2 : В этом приложении, когда запись вставляется или обновляется, весьма вероятно, что она останется нетронутой как минимум в течение месяца. (может быть, я смогу разбить таблицу по столбцу lastUpdated?)
Спасибо!
* 1015 Луиджи *