我正在使用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语句,则扫描表,否则执行索引查找。这是预期的行为吗?