0

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

插入语句需要很长时间才能执行。有什么办法可以改进吗?

我正在使用 SQL Server 2008

谢谢

4

3 回答 3

0

尝试以下查询:

@sql = SELECT a, b, c, d 
FROM table t (NOLOCK) LEFT JOIN table2 t2 (NOLOCK) ON t.id = t2.id
于 2013-03-28T20:31:03.990 回答
0

虽然你不能做太多(简单的 sql 查询)。

尝试使用临时表

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

并插入其中

看看它是否工作得更快。在此处阅读更多信息

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

于 2013-03-28T18:21:07.483 回答
-2

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

于 2013-03-28T18:23:21.670 回答