繁体   English   中英

选择查询超出 MS Access System Resources

[英]MS Access System Resources exceeded with select query

我在这里看到这个问题问了几次,但我看到的似乎都没有解决我的具体问题。 我有一个从 2 个链接表中提取的选择查询。 当我大约 5 分钟后运行查询时,我收到一条错误消息,指出超出系统资源。 知道我该如何解决这个问题吗? 下面是我的查询,这两个表相当大,一个有 146k 行和 24 列,另一个有 312K 行和 67 列。 这对于 Access 来说是不是太多数据了?

SELECT [Learner Name]=[learning item number] AS [Key],
   Date()                                AS [Business Day],
   [business day] - [updated due date]   AS [Days Overdue],
   Iif([days      overdue] > 0, "true", "false")    AS [Greater Than Zero],
   assignments.[standard id],
   assignments.[learner name],
   [email]                               AS [Email Address],
   active_workforce.employee_status,
   active_workforce.employee_type,
   active_workforce. [bank title desc],
   assignments.[learning item number],
   assignments.[learning item      name],
   assignments.[learning item type],
   assignments.[enrollment record status],
   assignments.[enrollment record substatus],
   assignments.[enrollment type],
   assignments.[enrolled on date],
   assignments.[due date],
   Iif([due date] BETWEEN #3 / 16 / 2020 # AND #7 / 31 / 2020 # ,
   [due date] + 30,
   [due date])                           AS [Update Due Date],
   assignments.[upcoming or overdue],
   assignments.[business unit],
   assignments.department,
   active_workforce.job_code,
   assignments.job,
   assignments. [legal employer],
   assignments.[manager name],
   assignments.[manager sid],
   assignments. [location name],
   assignments.position,
   active_workforce.start_dt,
   active_workforce.cost_ctr_nbr,
   active_workforce.cost_ctr_desc,
   active_workforce.city,
   active_workforce.country_name,
   active_workforce.region_code,
   active_workforce.company,
   active_workforce.level_02_manager_sid,
   active_workforce.level_02_manager,
   active_workforce.level_03_manager_sid,
   active_workforce.level_03_manager,
   active_workforce.level_04_manager_sid,
   active_workforce.level_04_manager,
   active_workforce.level_05_manager_sid,
   active_workforce.level_05_manager,
   active_workforce.level_06_manager_sid,
   active_workforce.level_06_manager,
   active_workforce.level_07_manager_sid,
   active_workforce.level_07_manager,
   active_workforce.level_08_manager_sid,
   active_workforce.level_08_manager,
   active_workforce.level_09_manager_sid,
   active_workforce.level_09_manager,
   active_workforce.level_10_manager_sid,
   active_workforce.level_10_manager,
   active_workforce.[lob code],
   active_workforce.[lob      description],
   active_workforce.[sub lob code],
   active_workforce.[sub lob      description],
   active_workforce.[level 7 code],
   active_workforce.[level 7      description],
   active_workforce.[level 8 code],
   active_workforce.[level 8      description],
   active_workforce.[level 9 code],
   active_workforce.[level 9      description],
   active_workforce.[level 10 code],
   active_workforce.[level 10      description],
   active_workforce.[level 11 code],
   active_workforce.[level 11      description],
   active_workforce.[level 12 code],
   active_workforce.[level 12      description],
   active_workforce.[level 13 code],
   active_workforce.[level 13      description],
   active_workforce.[level 14 code],
   active_workforce.[level 14      description]
FROM   assignments
   INNER JOIN active_workforce
           ON assignments.[standard id] = active_workforce.sid; 

把这个查询分解成几个更简单的查询,每个查询的中间结果写临时表。 使用一个或多个最终查询将数据重组为最终结果。


实际上,这个查询(一旦我对其进行了格式化以便于阅读)似乎并没有那么复杂。 检查以确保您在assignments.[standard id] = active_workforce.sid每一侧都有索引assignments.[standard id] = active_workforce.sid内连接。 如果没有索引,Access 可能会尝试在内存中组装整个内容,考虑到您指定的规格,这听起来太多了。

或者,将此数据放入 SQL Server Express 数据库,让 SQL Server 处理它。 但是你仍然需要在assignments.[standard id]active_workforce.sid

创建最简单的查询来选择记录:

SELECT
    assignments.[standard id]
FROM
    assignments
INNER JOIN 
    active_workforce
    ON assignments.[standard id] = active_workforce.sid;

保存它并创建一个新的查询,将保存的查询作为源,并包括到每个表的左外连接以从这些表中提取相关字段。 检查,这运行。

最后,添加您的表达式。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM