在索引方面,临时表和变量表之间有什么区别吗?

时间:2015-06-22 21:33:11

标签: sql sql-server

CREATE TABLE #Employee
(
   EmployeeID INT,
   Name VARCHAR(50),
   UNIQUE CLUSTERED (EmployeeID)
)

DECLARE @Employee TABLE
(
   EmployeeID INT,
   Name VARCHAR(50),
   UNIQUE CLUSTERED (EmployeeID)
)

性能有差异吗?

我基本上想知道哪个更快......

1 个答案:

答案 0 :(得分:0)

您可以在临时表上创建索引,但不能在变量表上创建索引。根据我的经验,临时表更快,并产生更好的查询计划。 SQL Server保留临时表的统计信息。您可以在var表上创建主索引和/或唯一索引,但它们用于强制唯一性。如果没有统计数据,我认为SQL Server不会使用索引进行搜索。在2014年,SQL Server允许创建非主索引,我们必须看到它如何使用索引。