SQL server表变量vs temp表

时间:2011-05-09 18:40:53

标签: sql sql-server-2008

  

可能重复:
  What's the difference between a temp table and table variable in SQL Server?

我使用表变量来存储查询的聚合结果。

查询如下

update @results 
set col1 = totals  
from ( select sum(x) as totals from ......) 
where id = 1

如果我使用临时表,查询运行得更快。

在上面的查询中是否应该使用表变量或临时表?

我忽略了什么吗?

感谢

2 个答案:

答案 0 :(得分:1)

这实际上取决于记录的数量。表变量在较小的记录集上表现更好。这是一篇很好的博客文章,其中包含一些基准测试:http://sqlnerd.blogspot.com/2005/09/temp-tables-vs-table-variables.html

答案 1 :(得分:0)

表变量很好,直到你获得超过100个结果。如果您期望100个或更多结果,那么您应该切换到临时表以提高效率。