我在存储过程中有一个动态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
由于
答案 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)
似乎无法优化。查询很简单。使用临时表可能会因内存使用而进一步减慢进程。