我在MS Access 2010中运行以下插入查询,我需要一种方法让查询运行得更快。我确实需要将Source_1_table中的所有列都放到temp_Table中。
Source_2_table有3959条记录
INSERT INTO [temp_Table] 选择 * 来自Source_1_table 哪里 ((dbo_Source_1_table.Field_1))不是IN(SELECT [Source_2_table]。[ID_Field] FROM [Source_2_table]));
问题1.如何查看运行查询的时间长度(类似于SSMS)? 问题2.查询似乎需要超过10分钟才能运行。有没有办法加速这个查询?
答案 0 :(得分:1)
之前我从未使用过Access数据库中的那么多记录,所以我并不感到惊讶它很慢。
我最近在一些遗留代码中解决了类似的问题。我认为一个很大的问题是你在主查询中为每个记录运行一次子查询(有人请纠正我,如果这不正确的话)。试试这个:
INSERT INTO [temp_Table]
SELECT s1.*
FROM Source_1_table s1
Left Join Source_1_table s2 on s1.Field_1=s2.ID_Field
where s2.ID_Field is null