我发现有些人说温度表在物理磁盘上存储在物理磁盘上,因为它在tempdb中,然后变量就在内存中(有时是物理磁盘取决于计数数据(。
所以问题一个是:他们实际上存储在哪里!问题第二:我可以将tempdb视为硬盘和内存之间的缓存内存吗?
temp表是在 tempdb 数据库中创建的物理上。
表变量是在tempdb数据库中创建的,但不是内存(完全(。
。让我引用Microsoft的支持文档:
表变量不是仅存储器的结构。因为一张桌子 变量可能容纳比内存中的数据更多的数据,它必须具有一个 放在磁盘上存储数据。表变量是在tempdb中创建的 数据库类似于临时表。如果有内存,两者都 创建和处理表变量和临时表 在内存(数据缓存(。
来源:
fyi, cte 是在内存中创建而不是tempdb数据库