6

我的后台进程是批量更新/插入数据。我需要在临时表中存储一些数据以备后用。我有 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
);

为什么表变量很慢?

4

1 回答 1

1

我猜是因为表变量插入不支持并行计划。

并行查询处理是在 MsSql 中实现的并行查询中的优化过程,临时表从中受益,而表变量则没有。

这是我们不对大量数据使用表变量的主要原因之一(当范围无关紧要时)。

在这里查看更多信息。

于 2014-01-23T11:17:48.330 回答