Sql 插入到表变量的速度很慢
我在存储过程中有一个动态sql,比如Sql 插入到表变量的速度很慢,sql,sql-server,sql-server-2008,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语句的执行时间很长。我有什么办法可以改进它吗 我正在使用SQLServer2008
@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语句的执行时间很长。我有什么办法可以改进它吗
我正在使用SQLServer2008
谢谢你,尽管你不能做太多(简单的sql查询)
尝试改用临时表
CREATE TABLE #TempTable(
ID int,
col2 <datatype>,
col3 <datatype>)
CREATE TABLE#(
ID int,
col2,
col3)
并插入其中
看看它是否工作得更快。阅读更多关于它的信息
尝试为数据库编制索引。它应该会给您带来明显的性能提升。似乎无法优化。问题是直截了当的。如果使用临时表,可能会由于内存使用而使进程更加缓慢 尝试以下查询:
@sql = SELECT a, b, c, d
FROM table t (NOLOCK) LEFT JOIN table2 t2 (NOLOCK) ON t.id = t2.id
你的桌子太大了吗?你试过研究什么吗?你有索引吗?给我们看些东西。这只是一个例子还是你为什么要这样做?您可以执行一个静态SQL select语句,获取结果并将其插入表中。为什么这么复杂?你到底为什么要使用动态sql来实现这一点?如果可能的话,应该避免使用动态Sql。我认为Select into#TESTERABLE将是更快的选择