Sql server 插入速度临时表与正常表

Sql server 插入速度临时表与正常表,sql-server,temp-tables,sql-insert,Sql Server,Temp Tables,Sql Insert,有许多关于临时表和表变量的线程 然而,我的问题是,是什么让临时表比MicrosoftSQLServer中的普通表快得多 若我插入临时表,然后将数据移出临时表,那个么我的存储过程的运行速度是普通表的5倍 最明显的答案是keys/indexs,但普通表根本没有任何键 还有什么能让它跑得更快 谢谢你,有几种可能性: TempDB可以使用更快的I/O 查询可以是并行的,并且可以利用多个tempdb数据文件(如果您已经将其配置为这样做的话) 当用户数据库必须等待自动增长时,TempDB可以为插入留出空间

有许多关于临时表和表变量的线程

然而,我的问题是,是什么让临时表比MicrosoftSQLServer中的普通表快得多

若我插入临时表,然后将数据移出临时表,那个么我的存储过程的运行速度是普通表的5倍

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

还有什么能让它跑得更快

谢谢你,有几种可能性:

  • TempDB可以使用更快的I/O
  • 查询可以是并行的,并且可以利用多个tempdb数据文件(如果您已经将其配置为这样做的话)
  • 当用户数据库必须等待自动增长时,TempDB可以为插入留出空间
  • 出于类似的原因,用户数据库在日志记录方面也可能有限制
  • 用户数据库可能必须“唤醒”-例如,如果已将AutoClose设置为ON
  • 有几种可能性:

  • TempDB可以使用更快的I/O
  • 查询可以是并行的,并且可以利用多个tempdb数据文件(如果您已经将其配置为这样做的话)
  • 当用户数据库必须等待自动增长时,TempDB可以为插入留出空间
  • 出于类似的原因,用户数据库在日志记录方面也可能有限制
  • 用户数据库可能必须“唤醒”-例如,如果已将AutoClose设置为ON

  • 您是在对临时表执行基于集合的插入,还是逐行执行?当您直接转到“real”表时,会遇到同样的问题。是的,看到存储过程代码可能会产生您当前未描述的变量。您好,这些是逐行插入。您是在执行基于集合的插入临时表,还是逐行插入?当您直接转到“real”表时,会遇到同样的问题。是的,看到存储过程代码可能会产生您当前没有描述的变量。您好,这些是逐行插入。您好,1。相同的磁盘。2.一个文件。3.两者都有空间。4.简单的恢复两个。5.两者都处于自动关闭=关闭模式,1。相同的磁盘。2.一个文件。3.两者都有空间。4.简单的恢复两个。5.两者都处于自动关闭=关闭状态