1

关于临时表与表变量有很多线程。

但是,我的问题是,是什么让临时表比 Microsoft SQL Server 中的普通表快得多?

如果我插入到临时表中,我的存储过程的运行速度会快 5 倍,然后将数据从中移出到普通表中。

最明显的答案是键/索引,但普通表根本没有任何键。

还有什么能让它跑得更快?

谢谢

4

1 回答 1

4

几种可能:

  1. TempDB 的 I/O 速度可能更快
  2. 查询可以是并行的,并且可以利用多个 tempdb 数据文件(如果您已将其配置为这样做)
  3. TempDB 可能有空间用于插入,而用户数据库必须等待自动增长
  4. 由于类似的原因,用户数据库也可能对日志记录有限制
  5. 用户数据库可能必须“唤醒”——例如,如果它的 AutoClose 设置为 ON
于 2013-04-22T15:47:49.267 回答