MS Access 2010:查询时间和速度

时间:2013-08-23 17:27:09

标签: ms-access ms-access-2010

我在MS Access 2010中运行以下插入查询,我需要一种方法让查询运行得更快。我确实需要将Source_1_table中的所有列都放到temp_Table中。

  • Source_1_table有505K记录
  • 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分钟才能运行。有没有办法加速这个查询?

1 个答案:

答案 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