1

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

4

0 回答 0