本文讨论如何优化查询性能 Microsoft Access 2000 中, 在 Microsoft Access 2002, 和 Microsoft Office Access 2003 中。 下列主题是包括:
•
|
MicrosoftJet 数据库引擎查询优化
|
•
|
查询计时
|
•
|
分析性能
|
•
|
提示以提高查询性能
|
本文假定您数据库具有本地表而不是链接 (或附加) 表。 如果是链接表, 此信息仍然适用。 但是, 有其他问题影响查询性能与链接表。 有关提高性能与链接表, 通过以下字符串可以搜索 Microsoft 知识库文章:
odbc 优化和表
回到顶端
更多信息
MicrosoftJet 数据库引擎查询优化
MicrosoftJet 数据库引擎包含若干组件, 但对查询最重要组件 (和最复杂) 是优化。 是基于成本的优化。 这意味着优化为每个查询任务分配时间开销并然后选择任务来执行生成预期结果集最便宜列表。 越长任务将执行该任务是最昂贵。
要决定哪些查询策略, 用于优化使用统计。 以下因素是一些因素, 基于这些统计的:
•
|
表中的记录数
|
•
|
表中数据页数
|
•
|
位置表
|
•
|
索引是否存在
|
•
|
如何唯一索引是
|
基于这些统计, 优化然后选择用于处理与特定查询最内部查询策略。
编译查询时更新统计。 查询被标记为要查询 (或其基础表) 并压缩数据库时保存任何更改时编译。 下次运行查询, 如果查询是标记为编译, 发生编译和更新统计。 编译通常采用从一二到四秒。
如果将大量的记录添加到数据库, 您必须打开并保存查询重新编译查询。 其他记录添加到数据库后例如, 如果设计, 然后通过使用示例数据, 小集的查询测试您必须 re-compile 查询。 这样做, 要确保, 当使用应用程序处于实现最佳查询性能。
注意 您无法查看 Jet 数据库引擎优化方案, 并且您无法指定如何优化查询。 但是, 可以确定索引是否存在以及如何唯一索引是使用文档数据库管理器
有关在 Access 2000, 使用文档数据库管理器时可能出现问题的详细信息请单击下列文章编号以查看 Microsoft 知识库中相应:
207782 (http://support.microsoft.com/kb/207782/) 如果对象是打开使用数据库文档管理器 ACC 2000: 错误
回到顶端
查询计时
有两大量时间测量对 Select 查询:
•
|
时间来显示数据的第一屏
|
•
|
时间来获得最后一个记录
|
如果查询返回的数据, 屏只这些两次测量都相同。 如果查询返回许多记录, 这些时间度量可以非常不同。
如果当您在数据表视图, 查看选择查询两尺寸是相同您看到屏幕是数据和由查询, 如 1 " 记录是 N " 返回记录的总数。 如果是为要显示的数据完成查询和检索上次记录, 然后比第一屏 Jet 数据库引擎快您看到一个屏幕是数据但没有 N 是 N 1 " 记录 " 中。 直到查询已完成, 或直到您滚动到最后一个记录 N 值为空。
此行为是 MicrosoftJet 数据库引擎选择之一两性能策略的结果:
•
|
完成查询, 然后显示数据
|
&bull
|
Access软件网交流QQ群(群号:198465573)