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