您要打印的文件是:改进 Access 数据库的性能

改进 Access 数据库的性能

作者:佚名    转贴自:本站原创    点击数:182


根据计算机的配置和工作环境,可以采取一些措施来改进 Microsoft Access 或 Microsoft Access 数据库 (数据库:与特定主题或用途相关的数据的集合。在数据库内,关于特定实体的信息(如雇员或订单)分类归纳到表、记录和字段中。)的性能。

如果正在优化 Access 数据库的性能,最好从“性能分析器”入手。可使用“性能分析器”来分析整个数据库或仅从数据库中选择对象。“性能分析器”也可根据您的需要,按建议进行修改。

隐藏运行“性能分析器”

使用“性能分析器”可以优化 Microsoft Access 数据库 (数据库:与特定主题或用途相关的数据的集合。在数据库内,关于特定实体的信息(如雇员或订单)分类归纳到表、记录和字段中。)的性能。“性能分析器”在 Access 项目 (Microsoft Access 项目:与 Microsoft SQL Server 数据库连接且用于创建客户/服务器应用程序的 Access 文件。项目文件中不包含任何数据或基于数据定义的对象(如表或视图)。)中不可用。

  1. 打开要优化的 Access 数据库。
  2. 在“工具”菜单上,指向“分析”,然后单击“性能”。
  3. 单击要优化的数据库对象 (数据库对象:Access 数据库包含诸如表、查询、窗体、报表、页、宏和模块等对象;Access 项目包含诸如窗体、报表、页、宏和模块等对象。)类型的选项卡。单击“全部对象类型”选项卡可以同时查看全部数据库的对象列表。
  4. 选择所要优化的数据库对象名称。单击“全部选定”可以选择列表中所有的数据库对象。
  5. 重复第 3 和第 4 步,直到已经选择所有要优化的数据库对象,然后单击“确定”。

    “性能分析器”列出三种分析结果:“推荐”“建议”“意见”。当单击“分析结果”列表中的项目时,列表下面的“分析注释”框中会显示建议优化的相关信息。在执行“建议”优化之前,应该先考虑潜在的权衡关系。若要查看权衡关系的说明,请单击列表中的“建议”,然后阅读“分析注释”框中的信息。Access 可以执行“推荐”“建议”的优化。但“意见”优化必须由您自己来执行。

  6. 单击一个或多个要执行的“推荐”或“建议”优化,然后单击“优化”。“性能分析器”便会执行优化,然后将它们标记为“固定”。继续该过程直到“性能分析器”已经完成全部要执行的“推荐”和“建议”。

    若要执行全部“推荐”和“建议”优化,请单击“全部选定”,然后再单击“优化”。

    若要要执行“意见”优化,请单击优化,然后按照“分析注释”框中显示的指导进行。

 注释   “性能分析器”并不提供如何改善 Microsoft Access 本身或运行它的系统的性能的建议。

隐藏改进 Microsoft Access 和系统的性能

下列方法能帮助用户改进计算机上 Microsoft Access 的性能:

  • 如果使用的数据库不需要与其他用户共享,则将 Microsoft Access 和所有的数据库安装在自己的硬盘上,而不要安装在网络服务器上。
  • 如果只是一个人使用数据库,就通过独占的方式打开数据库:在“打开”对话框中,单击箭头旁的“打开”按钮,然后单击“以独占方式打开”。
  • 关闭当前不使用的应用程序,这样能增加可用的内存。
  • 增加计算机的内存。建议使用 40 MB 内存(32 MB 内存另加供 Microsoft Access 使用的 8 MB 内存)。
  • 不要将任何 RAM 设为 RAM 磁盘。
  • 定期删除不需要的文件并且清空回收站,压缩数据库,然后使用 Microsoft Windows“磁盘碎片整理程序”来整理硬盘。若要执行“磁盘碎片整理程序”,请单击 Windows 的“开始”按钮,指向“程序”,指向“附件”,再指向“系统工具”,然后单击“磁盘碎片整理程序”。
  • 在大多数情况下,Windows 默认的虚拟内存设置应该能优化地执行。但在某些情况下,调整虚拟内存参数可以改善性能。如果已经试过删除不需要的文件但仍存在性能上的问题,可在下列情况下尝试改变虚拟内存的设置:
    • 当前驱动器上没有太多可用空间来用作虚拟内存,而另一个本地驱动器有更多的可用空间。
    • 另一本地驱动器比当前驱动器速度更快(除非那个磁盘将频繁使用)。

    在这些情况下,可以指定其他驱动器作为虚拟内存,以得到较好的性能。

    将可用作虚拟内存的磁盘空间指定为至少 25 MB 减去 RAM 的大小,这样可以得到较好的性能。例如,如果计算机有 12 MB 的 RAM,则至少应该指定 13 MB 的虚拟内存。如果要执行几个大的应用程序,可以指定更大的虚拟内存。

    若要更改 Windows 虚拟内存参数,则在 Windows“控制面板”中,双击“系统”图标,单击“高级”选项卡下的“性能选项”,然后单击“虚拟内存”部分的“更改”按钮,指定另一个硬盘,或在“初始大小”框中输入一个值,该值应至少为 25 MB 减去可用的 RAM 大小。

  • 如果在 Windows 的桌面上有墙纸(全屏幕背景)位图,请用单色或图案位图替换它,或不使用任何位图。
  • 如果使用屏幕保护程序,可使用空白屏幕保护程序或根本不用屏幕保护程序。
  • 去除磁盘压缩软件,或考虑将数据库移到没有压缩过的驱动器。
  • 为保证最佳性能,只有在您需要使用双字体支持来显示所有数据时,才使用替换字体。
隐藏改进表的性能
隐藏改进链接表的性能

 注释   只可链接 (链接(表):在其他应用程序与数据之间建立连接的操作,使用户既可以在原应用程序中,又可以在 Access 中查看和编辑数据。) Microsoft Access 数据库 (Microsoft Access 数据库:数据和对象(如表、查询或窗体)组成的集合,与特定的主题或用途有关。)中的表,而不能链接 Microsoft Access 项目 (Microsoft Access 项目:与 Microsoft SQL Server 数据库连接且用于创建客户/服务器应用程序的 Access 文件。项目文件中不包含任何数据或基于数据定义的对象(如表或视图)。)中的表。

虽然可以将链接表用作常规 Microsoft Access 数据库中的表,但必须记住,它们实际上并不在 Access 数据库中。每次查看链接表的数据时,Microsoft Access 必须从另一个文件中检索记录。这需要一定的时间,尤其是当链接表在网络上或者在 SQL 数据库 (SQL 数据库:基于结构化查询语言 (SQL) 的数据库。)中时更是如此。

如果所用的链接表是在网络上或者 SQL 数据库中,遵循下列准则可获得最佳效果:

  • 打开主数据库并打开表和窗体时,强制链接数据库保持打开状态,可以明显改进性能。其方法是:在链接数据库中创建一个空表,并将此表链接到主数据库,然后使用 OpenRecordset 方法来打开链接表。这样就可以防止 Microsoft Jet 数据库引擎重复打开和关闭链接数据库,以及重复创建和删除关联的 .ldb 文件。
  • 只查看所需要的数据。不要在数据表的页中毫无必要地来回移动,避免在大表中跳到最后一个记录。如果要在大表中添加新记录,请在“记录”菜单中使用“数据项”命令,以避免将已有记录加载到内存。
  • 使用筛选或查询,以便限制在窗体或数据表中查看的记录数。这样,Microsoft Access 就可以通过网络传输较少的数据。
  • 在涉及链接表的查询中,避免在查询条件中使用函数。特别是在查询中的任何位置都要避免使用域聚合函数 (域聚合函数:一种函数,例如 DAvg 或 DMax,这些函数用于计算记录集(域)的统计数据。)(如 Dsum)。因为使用域聚合函数时,Microsoft Access 会检索链接表中的所有数据来执行查询。
  • 如果经常向链接表中添加记录,请创建一个专门添加记录的窗体,将其“数据输入”属性设置为“是”。打开该窗体输入新的数据时,Microsoft Access 不会显示任何已有的记录。因为 Microsoft Access 不必检索链接表中的记录,所以这个属性设置可节约时间。
  • 切记,如果 Microsoft Access 数据库是在网络上,其他用户可能同时也在试图使用外部表。所以应该避免将记录锁定超过需要的时间。
隐藏改进链接到 SQL Server 的表的性能

如果前端/后端应用程序 (前端/后端应用程序:包含一个“后端”数据库文件和几份“前端”数据库文件副本的应用程序。后端数据库文件包含表,而前端数据库文件包含链接到后端表的所有其他数据库对象。)中的数据只包括 Microsoft SQL Server 表,可使用 Microsoft Access 项目或 Microsoft Access 数据库作为应用程序的前端。但是,若使用 Access 项目作为前端,则会从中得到诸多好处,如可以有更多表和更大的数据库大小。但是如果想要前端/后端应用程序中的数据既包括 Microsoft Access 表,又包括 Microsoft SQL Server 表,就必须使用 Access 数据库作为前端。

如果正在连接外部 SQL 数据库的表,则可通过链接 (链接(表):在其他应用程序与数据之间建立连接的操作,使用户既可以在原应用程序中,又可以在 Access 中查看和编辑数据。) SQL 表而不是直接打开表,而获得最佳性能。可以只使用 Microsoft Visual Basic 代码直接打开外部的 SQL 表。链接的表比直接打开的表速度更快,功能更强,而且效率更高。

其他优化性能的提示

隐藏改进多用户环境中的性能

下列指导可以帮助用户优化在多用户环境中使用 Microsoft Access 数据库 (Microsoft Access 数据库:数据和对象(如表、查询或窗体)组成的集合,与特定的主题或用途有关。)的性能。

  • 只将表放在网络服务器上,而将其他数据库对象保留在用户的计算机上。因为只在网络上传送数据时,数据库的性能会变得更快。可以使用“数据库拆分器向导”从其他数据库对象中拆分出表。
  • 请选择适当的记录锁定策略。如果使用积极锁定(“不锁定”),Access 直到用户保存更改时才锁定记录或页,因而可以更容易地获取数据。如果使用保守锁定(“编辑过的锁定”),Access 在用户开始编辑时就立即锁定记录,这些记录或许被锁定很长的时间,但是如果有两个用户同时编辑同一记录,用户无须确定哪个用户所做的更改被保存。
  • 选择适当的锁定级别策略(页级或记录级锁定)。
  • 通过调整“刷新间隔”、“更新重试间隔”、“更新重试的次数”和“ODBC 刷新的时间间隔”设置(如果可用),可以避免锁定的冲突。
  • 优化表的性能(包括链接到诸如 Microsoft SQL Server 的其他数据源的表)。
  • 工作组信息文件 (工作组信息文件:Access 在启动时读取的包含工作组中用户信息的文件。该信息包括用户的帐户名、密码,以及所属的组。)由 Access 97 或早期版本转换为当前版本的 Access。
隐藏改进查询的性能
隐藏数据库、表和索引
  • 对用于排序的字段编制索引。
  • 在索引字段中使用 Between...And、In 及 = 运算符。
隐藏字段、计算和条件
隐藏表达式和 Rushmore 优化
隐藏Rushmore 优化概述

Microsoft Access 可以在查询设计网格 (设计网格:在查询设计视图或“高级筛选/排序”窗口中设计查询或筛选时所用的网格。对于查询,该网格以前称为“QBE 网格”。)的“条件”行或在 SQL SELECT 语句的 WHERE 从句中,优化简单或复杂的表达式 (表达式:算术或逻辑运算符、常数、函数和字段名称、控件和属性的任意组合,计算结果为单个值。表达式可执行计算、操作字符或测试数据。)。对于某些类型的复杂表达式,Access 可以使用 Rushmore,一种由 Microsoft Jet 数据库引擎 (Microsoft Jet 数据库引擎:Access 数据库系统的一部分,可以在用户和系统数据库中检索和存储数据。可以将其视为构建数据库系统(如 Access)之基础的数据管理器。)所使用的数据访问技术,来实现更高级别的优化。此外,使用 Rushmore 还能极大地优化 Count 函数的查询。

Rushmore 查询不仅用于 Access 表,还用于 Microsoft FoxPro 表及 dBASE 表(.dbf 文件)。不能将 Rushmore 用于 ODBC 数据源 (ODBC 数据源:位于支持开放式数据库连接性 (ODBC) 协议的程序或数据库中,需要进行访问的数据和信息。),因为 Access 会将这些查询发送到 ODBC 数据源而不是在本地进行处理。

隐藏简单可优化表达式

简单可优化表达式 (表达式:算术或逻辑运算符、常数、函数和字段名称、控件和属性的任意组合,计算结果为单个值。表达式可执行计算、操作字符或测试数据。)可以形成完整的表达式或显示为表达式的一部分。简单的可优化表达式采取下列形式之一:

索引字段 比较运算符 表达式

[Order Date] = #09/15/96#
								

表达式 比较运算符 索引字段

#11/1/96# < [HireDate]
								

在简单可优化的表达式中:

如果已为“雇员”表中的“姓氏”、“年龄”及“雇用日期”字段创建了索引,则下列表达式是简单可优化表达式:

[姓氏] = 王

[年龄] >= 21

#12/30/90# < [雇用日期]

雇员.[姓氏] = 客户.[姓氏]

[姓氏] In (王, 李, 张)

[年龄] Between 18 And 65

隐藏复杂表达式

复杂表达式 (表达式:算术或逻辑运算符、常数、函数和字段名称、控件和属性的任意组合,计算结果为单个值。表达式可执行计算、操作字符或测试数据。)是通过用 AndOr 运算符组合简单表达式而创建的。复杂表达式采取下列形式之一:

简单表达式 And 简单表达式

简单表达式 Or 简单表达式

复杂表达式是完全可优化或部分可优化的,具体优化方式取决于是一个还是两个简单表达式可优化,以及使用哪种运算符组合。如果以下三个条件均为真,则复杂表达式就是 Rushmore 可优化的:

 注释   如果按照字段在“索引”窗口 (“索引”窗口:Access 数据库中的一个窗口,在其中可以查看或编辑一个表的索引,或者创建多字段的索引。)中的显示顺序来查询索引字段,从第一个索引字段开始,然后继续相邻的字段(最多可包含 10 个字段),则可以优化多字段索引。例如,如果有一个包含“姓氏”和“名字”字段的多字段索引,则可以针对“姓氏”或“姓氏”和“名字”优化查询,但是不能针对“名字”优化查询。

下列各种不同的简单查询条件表达式的组合表明查询优化的级别。

完全可优化的查询结果(使用 Rushmore)

  • (可优化的表达式)And(可优化的表达式)
  • (可优化的表达式)Or(可优化的表达式)

部分可优化的查询结果(不使用 Rushmore)

  • (可优化的表达式)And(不可优化的表达式)

不可优化的查询结果

  • (不可优化的表达式)And(不可优化的表达式)
  • (不可优化的表达式)Or(不可优化的表达式)
  • Not(可优化的表达式)
  • Not(不可优化的表达式)

另外,也可以使用圆括号将简单表达式的组合加以分组,上面的规则也适用于用括号加以分组的表达式组合。

将简单可优化表达式组合成复杂表达式后,这些复杂表达式还可以组合成更复杂的表达式,而且根据上面的规则该表达式可能是可优化的。

以下示例的假设前提是您已为“姓氏”和“雇用日期”字段(使用这两个字段的简单表达式是可优化的)创建了索引,但没为“名字”字段(使用该字段的简单表达式是不可优化的)创建索引。下面的简单表达式组合示例表明了结果的优化程度。

完全可优化的查询结果(使用 Rushmore)

[LastName] = Smith And [Hire Date] < #12/30/90#
						
[LastName] = Smith Or [Hire Date] < #12/30/90#
						

部分可优化的查询结果(不使用 Rushmore)

[LastName] = Smith And [MiddleInitial] = C
						
[FirstName] = Terry And [MiddleInitial] = C
						

不可优化的查询结果

[LastName] = Smith Or [MiddleInitial] = C
						
[FirstName] = Terry Or [MiddleInitial]= C
						
隐藏一般建议
隐藏改进筛选的性能

如果“按窗体筛选” (按窗体筛选:一种筛选数据的技术,该技术使用一个带有空字段(用户可以在此输入筛选出的记录应包含的值)的某个版本的当前窗体或数据表。)窗口的字段列表太长而无法显示,或不能显示基表中的值,可以更改所有表、查询及窗体的“按窗体筛选”性能,或更改特定窗体的性能。在这两种情况下,都可以防止列表显示基表的字段值,仅在列表上显示特定类型的索引 (索引:一种功能,可以加速根据键值在表中进行的搜索和排序,并可使表中的行实现单值性。表中的主键是自动编制索引的。有些字段由于其数据类型的原因而无法编制索引。)或非索引字段的值,或更改记录限制以决定列表是否显示字段的值。

隐藏优化数据库中的所有表、查询及窗体的“按窗体筛选”性能

下列设置影响所有的表和查询,以及“筛选查找”属性设为“数据库默认值”的所有文本框控件 (控件:允许用户控制程序的图形用户界面对象,如文本框、复选框、滚动条或命令按钮等。可使用控件显示数据或选项、执行操作或使用户界面更易阅读。)

  1. 在“工具”菜单上,单击“选项”。
  2. 单击“编辑/查找”选项卡,然后根据要实现的性能来设置“按窗体筛选默认为”。
    • 如果值的列表太长,仅显示非索引字段,可以尝试限制列表只显示索引字段,方法是清除“局部非索引字段”和“ODBC 字段”复选框。如果列表太长而显示不下索引字段,则还要清除“局部索引字段”复选框,因为列表中的索引记录太多会影响显示速度。

       注释   如果重复使用相同的非索引字段来筛选记录,可以考虑为其编制索引,以改进字段上的筛选及其他搜索操作的性能。

    • 如果列表显示的不是索引或非索引字段的值,请检查“显示值列表于”下面的项,确保选中了合适的复选框,或尝试增加“读取记录超过该数目时不再显示字段列表”框中的数值,使该值大于或等于基表中任何非索引字段的最大记录数。
隐藏优化特定窗体的“按窗体筛选”性能

对于窗体上的每个文本框控件 (控件:允许用户控制程序的图形用户界面对象,如文本框、复选框、滚动条或命令按钮等。可使用控件显示数据或选项、执行操作或使用户界面更易阅读。),都可以指定字段中保存的值是否在“按窗体筛选”窗口中的对应列表上显示。

  1. “设计”视图 (设计视图:显示数据库对象(包括:表、查询、窗体、宏和数据访问页)的设计的窗口。在设计视图中,可以新建数据库对象和修改现有数据库对象的设计。)中打开窗体。
  2. 显示任何文本框控件的属性表。
    隐藏操作方法:
    1. “设计”视图 (设计视图:显示数据库对象(包括:表、查询、窗体、宏和数据访问页)的设计的窗口。在设计视图中,可以新建数据库对象和修改现有数据库对象的设计。)中打开表、查询、窗体、报表或数据访问页 (数据访问页:Access 发布的网页,包含与数据库的连接。在数据访问页中,可查看、添加到、编辑以及操作数据库中存储的数据。这种页也可以包含来自其他源(如 Excel)的数据。)
    2. 执行下列操作之一,以打开属性表:

      窗体选择器或报表选择器

      标注 窗体或报表选择器

      节选定器

      标注 节选定器

      • 对于数据访问页上的某节,则双击节栏。

      数据访问页中的节栏

      标注 节栏

    3. 在属性表中,单击要设置的属性,然后执行以下操作之一:
    隐藏提示
    • 若要获得属性表中各属性的“帮助”信息,请单击该属性,然后按 F1。
    • 如果在输入或编辑属性设置时需要更多空间,请按 Shift+F2 以便打开“显示比例”框。

     注释   如果窗体的“允许设计更改”属性设为“所有视图”,那么也就可以在“窗体”视图 (窗体视图:一个显示窗体以便显示或接受数据的窗口。窗体视图是添加和修改表中数据的主要方式。在该视图中还可以更改窗体的设计。)“数据表”视图 (数据表视图:以行列格式显示来自表、窗体、查询、视图或存储过程的窗口。在数据表视图中,可以编辑字段、添加和删除数据,以及搜索数据。)中设置窗体属性。

  3. 在“筛选查找”属性框中,按照要实现的性能设置属性。
    • 如果列表太长而不能在“按窗体筛选”窗口中显示,请将“筛选查找”属性设为“从不”或“数据库默认值”,然后在“选项”对话框(“工具”菜单)中作适当的更改。
    • 如果在“按窗体筛选”窗口中的列表显示的不是字段中保存的值,请确保“筛选查找”属性未设为“从不”,如果“筛选查找”属性设为“数据库默认值”或“始终”,请在“选项”对话框(“工具”菜单)中作适当的更改。
隐藏改进查找和替换的性能

索引有助于 Microsoft Access 快速查找和排序记录。Access 在表中使用索引,就像在书中使用索引一样:查找某个数据时,先在索引中找到数据的位置。可以基于单个字段或多个字段来创建索引。多字段索引能够区分开第一个字段值相同的记录。

确定为哪些字段设置索引

一般可能希望对后面这些字段设置索引:经常搜索的字段、要排序的字段或要在查询 (查询:有关表中所存数据的问题,或要对数据执行操作的请求。查询可以将多个表中的数据放在一起,以作为窗体、报表或数据访问页的数据源。)联接 (联接:表格或查询中的字段与另一表格或查询中具有同一数据类型的字段之间的关联。联接向程序说明了数据之间的关联方式。根据联接的类型,不匹配的记录可能被包括在内,也可能被排除在外。)到其他表中字段的字段。然而在执行某些操作时,由于许多字段的索引需要更新,所以索引可能会降低某些操作查询 (动作查询:用来复制或更改数据的查询。动作查询包括追加查询、删除查询、生成表查询和更新查询。在数据库窗口中,是以其名称后紧跟感叹号 (!) 来标识的。)(如追加查询 (追加查询:一种动作查询,它将查询结果集内的记录添加到现有表的尾部。))的执行速度。

表的主键 (主键:具有唯一标识表中每条记录的值的一个或多个域(列)。主键不允许为 Null,并且必须始终具有唯一索引。主键用来将表与其他表中的外键相关联。)将自动设置索引,而对 OLE 对象 (“OLE 对象”数据类型:字段的数据类型之一,用于在其他应用程序中创建的、可链接或嵌入(插入)到 Access 数据库中的对象。)数据类型 (数据类型:决定字段可拥有的数据类型的字段特征。数据类型包括 Boolean、Integer、Long、Currency、Single、Double、Date、String 和 Variant(默认)。)的字段则不能设置索引。对于其他字段,如果符合下列所有条件,则可以考虑对字段设置索引:

  • 字段的数据类型为“文本”、“数字”、“货币”或“日期/时间”。
  • 准备搜索字段中保存的值。
  • 准备对字段中的值进行排序。
  • 准备对字段中多个不同的值进行排序。如果字段中的许多值是相同的,则索引可能不会显著地增加查询速度。

多字段索引

如果经常需要同时搜索或排序两个或更多个字段,可以为该字段组合创建索引。例如,如果经常在同一个查询中对“姓氏”和“名字”字段设置条件,就应该在这两个字段上创建多字段索引。

在使用多字段索引排序表时,Microsoft Access 将首先使用定义在索引中的第一个字段进行排序。如果在第一个字段中出现有重复值的记录,则 Microsoft Access 会用索引中定义的第二个字段进行排序,以此类推。

在多字段索引中最多可以包含 10 个字段。

隐藏改进窗体和子窗体的性能

有几种方法可以使窗体运行得更快。

隐藏常规提示
隐藏关于包含图片和对象的窗体的提示
  • 尽量少用位图和其他图形对象。
  • 将显示图形的未绑定对象框转换为图像控件。
  • 使用黑白位图,不要用彩色位图。
隐藏关于包含代码的窗体的提示

不含窗体模块 (窗体模块:该模块中包含在指定的窗体或其控件上事件发生时触发的所有事件过程的代码。)的窗体加载速度更快,占用磁盘空间更小。如果窗体或窗体上的控件不使用事件过程 (事件过程:自动执行的过程,以响应用户或程序代码启动的事件或系统触发的事件。),窗体就不需要窗体模块。

注意

隐藏关于子窗体的提示
隐藏改进列表框和组合框的性能

有几种方法可以使列表框、组合框和下拉列表框 (下拉列表框:数据访问页上的一种控件,单击时显示可供选择的值列表。不能在下拉列表框中键入值。)运行得更快:

 注释   “查询生成器”在数据访问页中不可用。在独立的数据访问页中,或者将数据访问页指向当前未打开的数据库时,向导也不可用。在这两种情况下 ,必须自己创建列表框或下拉列表框。

隐藏改进报表和子报表的性能

有几种方法可以使报表打印得更快。

隐藏常规提示
隐藏关于子报表的提示
隐藏改进数据访问页的性能

您可以采取一些措施,使数据访问页在“页”视图 (页面视图:用于浏览数据访问页内容的 Access 窗口。在 Microsoft Internet Explorer 5.0 或更高版本中,页具有相同的功能。)或带 Service Pack 2 (SP2) 的 Microsoft Internet Explorer 5.01 或其更高版本中加载得更快。

隐藏常规提示
  • 在 Microsoft Access 中使用数据访问页时,关闭所有当前不使用的数据库对象。当在 Internet Explorer 中使用数据访问页时,关闭所有当前不使用的窗口。
  • 在用于数据输入的数据访问页上,将该页的 DataEntry 属性设为 True,这样,该页在打开时就具有一条空记录。
  • 为所有将要排序、分组或筛选的字段编制索引。
  • 将数据访问页绑定到 XML 数据文件上,这样,页可以从位于本地客户机上的文件中获取数据,不必访问数据库服务器。
隐藏控件
  • 避免重叠控件。
  • 用绑定范围控件代替文本框来显示任何不可更新的数据,例如,显示自动编号的值、从表达式得出的值和超链接。

    安全性  使用绑定范围控件或超链接控件时要格外小心。未经授权的用户可将有害的 HTML 文本插入到这些控件中。处理此文本时如果不进行验证或修改将可能导致个人信息或其他数据丢失。为了防止显示控件中的 HTML 文本,请对控件内容进行编码。

隐藏图片和对象
  • 尽量少用位图和其他图形对象。请使用黑白位图而非彩色位图。
隐藏分组的页
  • 确保对于最高分组级别,ExpandedByDefault 属性设为 False。对于较低分组级别,如果该属性设为 False,会加速打开该页之后的其他交互活动。
  • 确保 DataPageSize 分组级别属性设为较低的值而不是较高的值,或者设为 All。该值越小,记录显示得越快。
  • 在包含处于一对多关系中的记录的表上,按表而不是按字段或表达式对记录进行分组。
  • 在基于处于一对多关系中的表的数据访问页上,将每个节与表绑定,而不要与查询绑定。只有当需要在页上显示记录时,Microsoft Access 才从表中检索记录。使用查询,Access 会先检索所有记录,然后才在页上显示记录。只有当想限制页上所用的数据时、计算聚合值或要执行只有在查询中才可能进行的任务时才使用查询。
隐藏了解如何将数据库转换为 MDE 文件来提高性能

如果数据库中包含 Microsoft Visual Basic for Applications (VBA) (Visual Basic for Applications (VBA):宏语言版本的 Microsoft Visual Basic,用来编写 Windows 应用程序,它包含在几种 Microsoft 应用程序中。) 代码,则将 Microsoft Access 数据库 (数据库:与特定主题或用途相关的数据的集合。在数据库内,关于特定实体的信息(如雇员或订单)分类归纳到表、记录和字段中。)另存为 MDE 文件会编译所有模块、删除所有可编辑的源代码,并压缩目标数据库。Visual Basic 代码将继续运行,但无法再查看或编辑这些代码。

安全性  通过将数据库另存为 MDE 文件,无需用户登录或创建和管理用户级安全机制 (用户级安全机制:在 Access 数据库中使用用户级安全机制时,数据库管理员和对象的所有者可以为各个用户或几组用户授予对表、查询、窗体、报表和宏的特定权限。)所需的用户帐户 (用户帐户:由用户名和个人 ID (PID) 标识的帐户,创建它的目的是在 Access 工作组中管理用户对数据库对象的访问权限。)权限 (权限:一组属性,用于指定用户对数据库中的数据或对象所拥有的访问权限类型。),即可帮助保护窗体和报表的安全。

 

数据库将继续正常运行,也就是说,仍然可以更新数据及运行报表。另外,数据库的大小将会由于代码的删除而减小,因此内存使用得以优化,同时性能得以提高。

将 Access 数据库保存为 MDE 文件可防止以下操作:

隐藏需要修改窗体、报表或模块的设计时的注意事项

确保有原始 Access 数据库的一个副本。如果需要修改 MDE 文件中窗体、报表或模块的设计,必须修改原始的 Access 数据库,然后重新保存为 MDE 文件。如果以后需要修改窗体、报表或模块的设计,则可以将包含表的 Access 数据库保存为 MDE 文件,这样会创建使不同版本数据协调的并发数据。基于此,对于前端/后端应用程序 (前端/后端应用程序:包含一个“后端”数据库文件和几份“前端”数据库文件副本的应用程序。后端数据库文件包含表,而前端数据库文件包含链接到后端表的所有其他数据库对象。)的前端数据库,将 Access 数据库保存为 MDE 文件是最合适的。

隐藏将数据库保存为 MDE 文件前的注意事项

将 Access 数据库保存为 MDE 文件时,有些限制条件:

另外,如果在将 Access 数据库保存为 MDE 文件前已经定义了数据库密码或用户级安全机制,则这些功能仍适用于从该数据库创建的 MDE 文件。如果该 Access 数据库定义有数据库密码或用户级安全机制,要想删除这些功能,必须在将其保存为 MDE 文件前先行删除。

若要将使用用户级安全机制的 Access 数据库另存为 MDE 文件,必须满足下列要求才能继续操作:

隐藏关于引用和 MDE 文件

如果试图从引用另一个数据库或加载项的 Microsoft Access 数据库 (.mdb) 或加载项 (.mda) (加载项:为 Microsoft Office 提供自定义命令或自定义功能的补充程序。) 中创建 MDE 文件,Access 将显示错误信息并且不允许完成操作。若要将引用另一个数据库的数据库保存为 MDE 文件,必须从第一个被引用的数据库开始,将引用链中所有的数据库都保存为 MDE 文件。将第一个数据库保存为 MDE 文件后,必须接着在将下一个数据库保存为 MDE 文件之前,先更新下一个数据库中的引用使其指向新的 MDE 文件,以此类推。

例如,如果 Database1.mdb 引用了 Database2.mdb,而 Database2.mdb 又引用了 Database3.mda,则必须遵循下列过程:

  1. 将 Database3.mdb 保存为 Database3.mde。
  2. 打开 Database2.mdb 并将其引用指向新的 Database3.mde。
  3. 将 Database2.mdb 保存为 Database2.mde。
  4. 打开 Database1.mdb 并将其引用指向新的 Database2.mde。
  5. 将 Database1.mdb 保存为 Database1.mde。
隐藏关于将同步复制的数据库保存为 MDE 文件

同步复制的数据库(副本 (副本:属于一个副本集并且可与该集合中其他副本同步的一个数据库副本。在一个副本中对复制的表的数据所做的更改会发送并应用到其他副本。)“设计母版” (设计母版:副本集内唯一可在其中对数据库结构进行更改(更改能传至其他副本)的成员。))不能保存为 MDE 文件。若要将同步复制的数据库保存为 MDE 文件,就必须先删除同步复制 (同步复制:复制一个数据库以使两个或更多副本可以交换数据或被复制对象的更新的过程。这种交换叫做同步。)

将数据库保存为 MDE 文件后,可对其进行同步复制,但仅建议在原始数据库不需要作进一步更改的情况下进行同步复制。没有方法可以对“设计母版”MDE 文件中的窗体、报表或代码的设计进行更改,并且在原始数据库中所作的设计更改也不能与预先存在的 MDE 副本同步 (同步:通过交换每个成员中所有已更新的记录和对象,来更新一个副本集的两个成员的过程。当每个副本集内的更改都相互应用于另一个副本集时,两个副本集成员就实现了同步。)。基于此,如果需要对一个 MDE 文件的副本集 (副本集:共享相同的数据库设计和唯一副本集标识符的“设计母版”和所有副本。)进行设计更改,则必须先在原始数据库中进行更改,再将它重新保存为 MDE 文件,然后从新的 MDE 文件创建并分发一个全新的副本集。

隐藏了解如何压缩 Access 数据库

Microsoft Access 将对 Access 文件 (Microsoft Access 文件:Access 数据库或 Access 项目文件。Access 数据库将数据库对象和数据存储在一个 .mdb 文件中。项目文件中不包含数据,而是用于连接到 Microsoft SQL Server 数据库。)的压缩和修复放在一个进程中处理。

隐藏压缩 Access 文件

如果在 Access 数据库 (Microsoft Access 数据库:数据和对象(如表、查询或窗体)组成的集合,与特定的主题或用途有关。)中删除数据或对象,或者在 Access 项目 (Microsoft Access 项目:与 Microsoft SQL Server 数据库连接且用于创建客户/服务器应用程序的 Access 文件。项目文件中不包含任何数据或基于数据定义的对象(如表或视图)。)中删除对象,文件可能会变得支离破碎,并使磁盘空间的使用效率降低。压缩 Access 文件将制作文件副本,并重新组织文件在磁盘上的存储方式。压缩上一版的 Access 数据库并不会将其转换为 Access 2002 - 2003 格式。

压缩可以优化 Access 数据库和 Access 项目的性能。然而,在 Access 项目中,压缩不影响位于 Microsoft SQL Server 数据库 (Microsoft SQL Server 数据库:Microsoft SQL Server 中的一个数据库,由表、视图、索引、存储过程、函数和触发器组成。)中的数据库对象 (数据库对象:Access 数据库包含诸如表、查询、窗体、报表、页、宏和模块等对象;Access 项目包含诸如窗体、报表、页、宏和模块等对象。)(如表或视图),而只影响 Access 项目本身的数据库对象。

压缩不影响 Access 项目中的自动编号。但在 Access 数据库中,如果已从具有“自动编号”字段 (“自动编号”数据类型:Microsoft Access 数据库中的一种字段数据类型,当向表中添加一条新记录时,这种数据类型会自动为每条记录存储一个唯一的编号。可以产生三种编号:顺序号、随机号和同步复制 ID。)的表的结尾删除了记录,压缩数据库会重设“自动编号”值;您所添加的下一记录的“自动编号”值将大于表中最后一次未删除的记录的“自动编号”值。

隐藏修复 Access 文件

多数情况下,在试图打开 Access 文件时,Microsoft Access 会检测该文件是否损坏,如果是,就会提供修复数据库的选项。如果当前的 Access 文件中含有对另一个已损 Access 文件的引用,Access 就不去尝试修复另一个文件。在某些情况下,Access 可能检测不到文件受损。如果 Access 文件表现得难以捉摸,就要压缩并修复它。

Access 可以修复:

若要防止 Access 文件受损,请遵循下列指导原则:

  • 定期压缩和修复 Access 文件。可以指定在关闭 Access 文件时 Access 自动压缩该文件。
  • 定期对 Access 文件进行备份。
  • 避免意外地退出 Access。例如,不要因关机而突然退出 Access。  
  • 如果遇到网络问题,在问题解决之前,请避免使用位于网络服务器上的共享 Access 数据库。如果可能,请将 Access 数据库移到您可以进行本地访问的计算机上,而不是网络上。
隐藏在 Access 意外关闭后修复文件

如果发生严重问题导致 Microsoft Access 关闭,则在 Access 重新启动时,会创建关闭时打开着的文件的副本,并将它命名为 filename_Backup.mdb 或 filename_Backup.adp,其中,filename 是原文件的名称。如果 filename_Backup.mdb 或 filename_Backup.adp 已存在,Access 就会要求您指定文件的名称。然后 Access 会尝试压缩和修复原文件。