我发现有些人说临时表存储在物理磁盘上,因为它位于tempdb中,然后变量就在内存中(有时物理磁盘取决于数据的数量)。
所以这里有一个问题:它们实际存储在哪里! 问题二:我可以将tempdb视为硬盘和内存之间的缓存吗?
答案 0 :(得分:0)
临时表是物理。
表变量在tempdb数据库中创建,但不在内存中创建(完全)。
让我引用微软的支持文件:
表变量不是仅内存结构。因为一张桌子 变量可能包含的数据多于内存中可容纳的数据,它必须有一个 放在磁盘上以存储数据。表变量在tempdb中创建 数据库类似于临时表。如果内存可用,两者都有 创建和处理表变量和临时表 在内存中(数据缓存)。
仅供参考, CTE 在内存中创建 而非tempdb数据库