假设我们有 MS SQL Server 数据库和表 A。然后,我们执行如下操作:
select A.a1
into #temp1
from A
这个链接说:“如果内存可用,表变量和临时表都会在内存中创建和处理(数据缓存)。”
假设我们在 #temp1 中有 100 行,它们很容易放入内存中……所以现在整个 #temp1 都在内存中。但是,我们执行以下语句:
UPDATE #temp1 SET a1 = a1 + 1
这是否涉及一些 IO 操作?例如,是否将某些内容写入 temp_log (我认为,不是在 RAM 中)?或者,因为我们现在正在进行更新,所以整个#temp1 被移动到了 hdd...?