我创建了一个查询,其中我将其插入一个空表中选择了其他表的结果。
此选择本身采用 〜20分钟(30 m行,120列和" where"条件,并且很好),但是 insert 进入 〜1小时。
您对如何改进它有任何建议吗?
我所做的就是以下示例。
Insert Into tableA
Select *
From TableB
感谢您的帮助!
将所有索引放在TableA
上,然后再次插入:
INSERT INTO tableA
SELECT * FROM TableB
已知索引会减慢插入语句。
在已经提到的索引下方,您可以检查tablea是否定义了约束(主键,外键等),因为索引通常由索引实现。
此外,您可以检查桌面上是否有触发器。另一个测试是将表格导出到文件,例如。tableb.txt,然后导入/加载文件tableb.txt到tablea中。(对不起,我不知道SQL Server的语法)。
检查的另一个可能是事务日志。可能可以将记录更改为bulk_logged参见:禁用事务日志
最佳方法是丢弃表,这样做会更快 Select * INTO TableB from tableA
也提到了这里