繁体   English   中英

插入表变量很慢

[英]Insert into table variable is slow

我在存储过程中有一个动态SQL

@sql = 'SELECT a, 
       b, 
       c d 
FROM   table t 
       LEFT JOIN table2 t2 
              ON t.id = t2.id '

然后插入表变量

Insert into @tblCustomer

EXECUTE sp_executesql @sql

insert语句需要很长时间才能执行。 我有什么办法可以改善它?

我正在使用SQL Server 2008

谢谢

尽管您不能做很多事情(简单的SQL查询)。

尝试使用临时表代替

CREATE TABLE #TempTable(
 ID int,
 col2 <datatype>,
 col3 <datatype>)

并插入其中

看看它是否工作更快。 在这里阅读更多关于它的信息

尝试索引数据库。 它应该给您带来明显的性能提升。

尝试以下查询:

@sql = SELECT a, b, c, d 
FROM table t (NOLOCK) LEFT JOIN table2 t2 (NOLOCK) ON t.id = t2.id

似乎无法优化。 该查询是直接的。 如果使用了临时表,则由于使用内存可能会进一步减慢该过程。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM