【问题标题】:What is going on behind the scenes when I create a query that works with other queries in access?当我创建一个与访问中的其他查询一起使用的查询时,幕后发生了什么?
【发布时间】:2011-04-18 17:11:54
【问题描述】:

如果我在 Microsoft Access 中有几个查询,然后在另一个新查询中使用,访问是否独立运行每个包含的查询,然后将这些结果用作新查询中的新表,或者它是否尝试将所有子查询合并到一个新的单个查询中?

例如,假设我有一个返回teacherID 和teacherName 的查询,然后我有另一个返回studentID、teacherID 和studentName 的查询。然后我尝试在一个新查询中同时使用这两个查询,该查询执行类似

的操作
SELECT qryTeacher.teacherName, qryStudent.studentName 
FROM qryTeacher INNER JOIN qryStudent 
WHERE qryStudent.teacherID=qryTeacher.teacherID;

这会执行 qryTeacher 查询和 qryStudent 查询,然后对结果运行此查询,还是会尝试使用所有三个查询构建一些新查询?

另外,源是链接的 SQL 表还是访问 .mdb 源是否重要?

【问题讨论】:

    标签: sql ms-access


    【解决方案1】:

    如果您想了解数据库引擎如何处理您的查询的详细信息,请在网上搜索“Jet ShowPlan”。

    “幕后”这一切都变得相当复杂。即使是相同的查询也可能不会以相同的方式连续执行两次。例如,使用新更新的索引统计信息,查询规划器可以确定更有效的路径来检索请求的数据。

    更直接地指向您的问题...如果您创建一个从其他两个查询中提取数据的查询,请不要假设这两个查询在合并或馈送到第三个查询之前单独执行。它可能会以这种方式发生。但优化器会对其认为最有效的数据检索方式做出判断,并根据需要重新组织查询计划。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2023-03-14
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2023-01-27
      • 1970-01-01
      • 2015-10-08
      • 2021-12-12
      相关资源
      最近更新 更多