【问题标题】:MS Access 2010: Query time and speedMS Access 2010:查询时间和速度
【发布时间】:2013-08-23 17:27:09
【问题描述】:

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

  • Source_1_table 有 505K 记录
  • Source_2_table 有 3959 条记录

    插入 [temp_Table] 选择 * FROM Source_1_table 在哪里 ((dbo_Source_1_table.Field_1)) 不在 (SELECT [Source_2_table].[ID_Field] FROM [Source_2_table]));

问题 1. 我如何查看查询运行需要多长时间(类似于 SSMS)? 问题 2. 查询的运行时间似乎超过 10 分钟。有什么方法可以加快这个查询?

【问题讨论】:

  • 这是链接到 SQL Server 中的表,是本地的,还是在不同的数据库上?您可能需要查看 Pass-Through Queries。另外,我怀疑这会有所不同,但请考虑切换表格的位置以检查小>大而不是大>小。
  • 您是否为 WHERE 子句中引用的两列定义了索引?

标签: ms-access ms-access-2010


【解决方案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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2018-07-09
    • 1970-01-01
    • 2020-06-01
    • 1970-01-01
    • 2013-03-15
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多