我的数据集太大(大约1200万条记录)要查询。我需要为中间计算获取大量数据。如果我使用临时表,这会导致巨大的内存消耗。
SQL Server 2008 R2中是否有任何机制可以在磁盘中创建临时表而不是内存?
答案 0 :(得分:2)
如果您将表声明为变量
declare @table ...
它存储在内存中。 要将它存储在db文件中,创建临时表,就像普通表一样,只有你的会话使用#前缀,或者像这样所有会话的##前缀:
CREATE table #TMP (
name nvarchar(20)
....
)
您可以自动创建这样的内容:
select id, name, something_else into #TMP from your_phisical_table