插入表变量很慢

时间:2013-03-28 18:14:46

标签: sql sql-server sql-server-2008

我在存储过程中有一个动态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

由于

3 个答案:

答案 0 :(得分:0)

虽然你做不了多少(简单的SQL查询)。

尝试使用临时表

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

并插入其中

看看它是否运行得更快。详细了解here

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

答案 1 :(得分:0)

尝试以下查询:

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

答案 2 :(得分:-2)

似乎无法优化。查询很简单。使用临时表可能会因内存使用而进一步减慢进程。