Проблема изоляции моментального снимка SQL Server 2008 R2
Я использую SET TRANSACTION ISOLATION LEVEL SNAPSHOT с включенным моментальным снимком в базе данных, но я замечаю, что если я сделаю простой оператор удаления, такой как
BEGIN TRANSACTION
DELETE * FROM TableA
INSERT INTO TableA(...) SELECT (...) FROM TableB
COMMIT TRANSACTION
Эффективно очистить таблицу и заново заполнить ее новыми данными, когда данные загружаются из другой таблицы. Пока выполняется эта операция, например, выполняется простое выделение, которое также выполняется в транзакции с объявленным снимком
SET TRANSACTION ISOLATION LEVEL SNAPSHOT
SELECT ID FROM TableA WHERE SomeColumn = 'A'
Сканирует таблицу, если выполняются операторы DELETE / INSERT, в противном случае выполняется поиск по индексу. Это ожидаемое поведение?