我的后台流程是批量更新/插入数据。我需要在临时表中存储一些数据供以后使用。我有5个临时表。如果我使用临时表(CREATE TABLE #T),则需要2-3秒,但如果我使用表变量(DECLARE @T TABLE)则需要超过90秒。这是一个示例临时表,
CREATE TABLE #TempAttributes
(
AID int
,PID int
,ATypeValue nvarchar(MAX)
,ATypeKey nvarchar(MAX)
,PLanguageID int
);
为什么表变量很慢?
答案 0 :(得分:1)
我想这是因为表变量插入不支持并行计划。
并行查询处理是在MsSql中实现的并行查询中的优化过程,临时表从中受益,而表变量则不然。
这是我们不对大型数据集使用表变量的主要原因之一(当范围无关紧要时)。
查看here了解更多信息。