临时表和存储的variable_table,物理磁盘或内存在哪里?

时间:2017-05-03 06:57:31

标签: sql-server temp-tables

我发现有些人说临时表存储在物理磁盘上,因为它位于tempdb中,然后变量就在内存中(有时物理磁盘取决于数据的数量)。

所以这里有一个问题:它们实际存储在哪里! 问题二:我可以将tempdb视为硬盘和内存之间的缓存吗?

1 个答案:

答案 0 :(得分:0)

tempdb 数据库中

临时表物理

表变量在tempdb数据库中创建,但不在内存中创建(完全)

让我引用微软的支持文件:

  

表变量不是仅内存结构。因为一张桌子   变量可能包含的数据多于内存中可容纳的数据,它必须有一个   放在磁盘上以存储数据。表变量在tempdb中创建   数据库类似于临时表。如果内存可用,两者都有   创建和处理表变量和临时表   在内存中(数据缓存)。

来源: https://support.microsoft.com/en-us/help/305977/inf-frequently-asked-questions---sql-server-2000---table-variables

仅供参考, CTE 在内存中创建 而非tempdb数据库