如何保持 Jet 4.0 数据库处于最佳工作状态

文章翻译 文章翻译
文章编号: 303528 - 查看本文应用于的产品
展开全部 | 关闭全部

本文内容

概要

Microsoft Jet 是 Microsoft Access 中默认使用的数据库引擎。本文提供了一系列最佳做法,使用它们有助于保持您的 Jet 数据库处于最佳工作状态。本文分别介绍在单用户环境和多用户环境中运行的数据库。

最佳做法

本节适用于所有 Jet 数据库,无论是只有您一个人在使用此数据库,还是有多个用户在通过网络使用它。

检查是否安装了最新的操作系统 Service Pack

安装最新的操作系统 Service Pack。

要检查您的操作系统是否安装了最新的 Service Pack,请访问下面的 Microsoft 网站:
http://update.microsoft.com
如果您处于网络环境中,请确保网络文件服务器安装了最新的操作系统 Service Pack。这可确保网络文件服务器具有网络重定向程序的最新更新和文件系统的最新更新。

检查是否安装了最新的 Microsoft Jet Service Pack

有关如何获得最新版本的 Jet 4.0 数据库引擎的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
239114 如何获取 Microsoft Jet 4.0 数据库引擎的最新 Service Pack
如果您在网络环境中工作,则必须在所有客户机上安装最新的 Microsoft Jet Service Pack。您无须在网络文件服务器上安装 Microsoft Jet Service Pack,除非此网络文件服务器也在运行一个或多个使用 Microsoft Jet 的应用程序。

使用高效数据库设计

采用高效设计的数据库可提高数据库的性能,还有助于降低文件损坏的风险。 有关设计数据库的最佳做法的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
289533 到哪里查找有关在 Microsoft Access 中设计数据库的信息

针对正在使用的 Jet 数据库引擎版本使用匹配的 Jet 数据库文件格式

为获得最佳性能和稳定性,请在使用 Microsoft Jet 4.0 客户端时使用 Microsoft Jet 4.0 格式的数据库。类似地,请在使用 Microsoft Jet 3.5 客户端时使用 Microsoft Jet 3.0 格式的数据库。

下表列出了当前可用的 Jet 格式,还列出了在使用 Jet 4.0 客户端时用于同 Jet 格式联系的转换器 dll:

Access 版本	Jet 格式        使用的转换器 dll
--------------	----------    -------------------
Access 2.0	Jet 2.0       Msrd2x40.dll
Access 95	Jet 3.0       Msrd3x40.dll
Access 97	Jet 3.0       Msrd3x40.dll
Access 2000	Jet 4.0       无
Access 2002	Jet 4.0       无
Access 2003	Jet 4.0       无
				
下表显示 Microsoft Access 95 和 Access 97 创建 Microsoft Jet 3.0 格式的数据库文件,Access 2000、Access 2002 和 Office Access 2003 创建 Microsoft Jet 4.0 格式的数据库文件。当使用 Microsoft Jet 4.0 客户端时,请使用 Microsoft Jet 4.0 格式的数据库文件,以避免使用转换器 dll。如果使用 Microsoft Jet 3.5 客户端,我们建议您使用 Microsoft Jet 3.0 格式的数据库。

下表列出了最常用的 Microsoft Jet 数据库引擎客户端以及这些 Jet 数据库引擎客户端使用的相关 Jet 数据库引擎版本:

	客户端应用程序			使用的 Jet 数据库引擎		建议的 Jet 数据库格式
	-------------------------   ------------------------       --------------------------------
	Access 2.0			Jet 2.0				Jet 2.0
	Access 95			Jet 3.0				Jet 3.0
	Access 97			Jet 3.5				Jet 3.0
	Access 2000			Jet 4.0				Jet 4.0
	Access 2002			Jet 4.0				Jet 4.0
	Office Access 2003		Jet 4.0				Jet 4.0
	DAO 3.0				Jet 3.0				Jet 3.0
	DAO 3.5				Jet 3.5				Jet 3.0
	DA0 3.6				Jet 4.0				Jet 4.0
	Microsoft.JET.OLEDB.3.51	Jet 3.5				Jet 3.0
	Microsoft.Jet.OLEDB.4.0		Jet 4.0				Jet 4.0
	Access ODBC 驱动程序		Jet 4.0				Jet 4.0
				
注意:MDAC 2.0 或更低版本中包含的 Microsoft Access ODBC 驱动程序使用 Microsoft Jet 3.5。MDAC 2.1 和 MDAC 2.5 中包含的 Microsoft Access ODBC 驱动程序使用 Microsoft Jet 4.0。MDAC 2.6 及更高版本中根本不包含 Microsoft Access ODBC 驱动程序。

在某些情况下(例如,新旧两个版本的 Jet 应用程序共享同一个数据库文件),您可能无法使用最新的 Jet 数据库文件格式。这是因为较旧的 Jet 引擎无法对新的 Jet 数据库文件格式执行读取或写入操作。在此情况下,必须使用较旧的格式并使用转换器 dll。

对象名称和字段名称中不能包含保留字和保留字符

在数据库中命名对象和字段时,请不要使用保留字和保留字符。单独使用保留字或保留字符,或者在它们两边加上空格并将它们与其他字结合使用,可能导致数据库损坏。

有关 Microsoft Access 中保留字和保留字符的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
286335 Microsoft Access 中的保留字

定期压缩 Microsoft Jet 数据库

如果您在数据库中频繁地进行更改,则数据库中的某些部分会变得很零碎。因此,应定期运行 Access 中的“压缩数据库”实用工具。如果您没有 Microsoft Access,也可以使用 JetComp 实用工具来压缩数据库。

有关如何获取用于 Microsoft Jet 4.0 的 JetComp 实用工具的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
295334 可从下载中心下载 Jet 压缩实用工具
压缩数据库的频率取决于数据更改的多少。如果不常改动数据,则压缩数据库的次数不必过多。如果经常改动数据库,则应更频繁地压缩数据库。尽管对于压缩数据库的频率没有一个正式规则,我们仍建议您定期压缩数据库。

下面几段介绍 Microsoft Jet 压缩数据库的过程。

有关压缩数据库的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
288631 整理和压缩数据库以提高性能
Microsoft Jet 数据库引擎将 Access 数据库文件视作一系列大小为 4096 字节的块。这类似于典型文件系统处理硬盘上的数据的方式。Microsoft Jet 表中所有的记录都是由一系列这样的块存储的。每个块都指向下一个块。每个块都可以存储一条或多条记录。一个块能存储多少记录取决于每条记录中有多少字段和多少数据。当添加记录和从表中删除记录时,数据库文件中的表块就会变得很零碎。

如果您压缩 Jet 数据库,这些块就不再零碎了,并且每个表都会被放置在一系列连续的块内。这有助于改进对表执行的读写操作的性能。

Access 数据库中的索引也是以大小为 4096 字节的块的形式存储的。只有表记录变得零碎时,索引才会变得零碎。

压缩 Jet 数据库后,Jet 会更新存储在数据库中的表统计信息。一种关键的表统计信息是表中的记录数。如果表统计信息中的记录数与表中的实际记录数出入太大,则性能就可能会不大好。例如,如果表统计信息指示表中只有少量的记录,则 Jet 数据库引擎优化程序执行搜索或联接时将不在表上使用索引。如果记录真的很少,则这样做的效率会更高。但如果记录很多,则效率会很低。因此,如果数据库拥有大量添加的、删除的和更新的记录,则应更频繁地压缩数据库。

压缩数据库时,Microsoft Jet 还会重新优化数据库中存储的查询。这会反映更新的表统计信息。因此,压缩数据库可以提高存储的查询的性能。

定期备份 Microsoft Jet 数据库文件

制定一个与您经受得起丢失的数据量相对应的备份计划。例如,如果可以承受丢失一天的数据,则每天备份。如果可以承受丢失一周的数据,则每周备份。完整数据库文件备份是确保您的 Microsoft Jet 数据库文件在发生损坏时能够恢复的最佳方法。

重要说明:如果您处于网络环境中,则必须首先关闭所有的 Microsoft Jet 客户端,然后才可以备份 Microsoft Access 数据库文件。否则,您创建的备份文件中可能包含不完整或不一致的数据。请定期测试备份文件以确保它们完好无损。

检查是否安装了适用于您的 Office 版本的最新 Service Pack

Microsoft 定期向 Microsoft Office 提供 Service Pack 和更新。请为您的 Office 版本安装最新的 Service Pack 或 Office 更新以提高性能和与其他程序的互操作性。可以使用 Microsoft Office 更新网站自动安装所有最新的 Service Pack 和更新。要让 Office 更新网站检测必须在计算机上安装的更新,请访问下面的 Microsoft 网站:
http://office.microsoft.com/zh-cn/downloads/maincatalog.aspx
Office 更新网站检测所需的最新更新后,您会收到一个推荐的更新列表供您批准。单击“开始安装”,安装更新。

针对网络环境的其他最佳做法

Microsoft Jet 是一个文件共享数据库系统。文件共享数据库系统是指文件处理在客户端进行。在多用户环境中使用文件共享数据库(如 Microsoft Jet)时,多个客户端进程通过网络对同一个共享文件进行文件读取、写入和锁定操作。如果某一进程无法完成,文件可能保留为不完整状态或损坏状态。以下任一原因均可导致进程无法完成:
  • 客户端意外停止
  • 到服务器的网络连接断开
Microsoft Jet 不适合用于高负载服务器应用程序、高并发服务器应用程序或全天候服务器应用程序。这包括 Web 应用程序、商业应用程序、事务性应用程序和消息服务器应用程序等服务器应用程序。对于这些类型的应用程序,最好的解决办法是改为使用真正的基于客户端/服务器的数据库系统,如 Microsoft 数据引擎 (MSDE) 或 Microsoft SQL Server。在高负载应用程序(如 Microsoft Internet Information Server (IIS))中使用 Microsoft Jet 时,您可能会遇到下列问题之一:
  • 数据库损坏
  • 稳定性问题,如 IIS 崩溃或锁定
  • 连接到有效数据库的驱动程序突然失败或持续失败,需要重新启动 IIS 服务
下面几节列出了在共享网络文件服务器上的 Microsoft Jet 或 Microsoft Access 数据库文件时应遵循的建议。


网络文件服务器上的机会锁定,又称 oplock


当网络文件服务器上的两个或多个客户端共享一个文件时,机会锁定可能会增加 Jet 数据库损坏的风险。此问题适用于 Microsoft Windows NT 4.0、Microsoft Windows 2000 和支持机会锁定的 Novell 文件服务器。此问题还适用于运行 Microsoft Windows NT 4.0、Microsoft Windows 2000或 Microsoft Windows XP 的客户端以及连接到支持机会锁定的文件服务器的客户端。

注意:运行 Microsoft Office Access 2003 的客户端必须安装有 Windows 2000 SP3 或更高版本或者 Windows XP 或更高版本的操作系统。

要想避免发生此问题,必须在 Access 数据库文件所在的 Windows 2000 文件服务器上安装 Windows 2000 Service Pack 3 (SP3) 或更高版本。然后,在连接到 Windows 2000 文件服务器的各台 Windows 客户机上安装最新的 Windows Service Pack。

要获得最新的 Windows Service Pack,请参阅下面的 Microsoft 网站:

Microsoft Windows 更新
如果您使用的是 Windows NT 4.0 或者您不想安装 Windows 2000 SP3 或更高版本,则您可以禁用机会锁定来避免发生此问题。

重要说明:如果您禁用机会锁定,将会对其他应用程序的性能产生负面影响。如果关于这一点您有什么问题,请与 Microsoft Windows 技术支持联系。

有关在 Windows NT 4.0 上禁用机会锁定的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
129202 阐述 Windows NT 上的机会锁定
有关在 Windows 2000 上禁用机会锁定的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
296264 在 Windows 中配置机会锁定
要在 Novell 文件服务器上禁用机会锁定,Microsoft 建议您与 Novell 技术支持联系。有关如何与 Novell 联系的信息,请单击下面列出的适当的文章编号,以查看 Microsoft 知识库中相应的文章:
65416 硬件和软件第三方供应商联系人列表,A-K

60781 硬件和软件第三方供应商联系人列表,L-P

60782 硬件和软件第三方供应商联系人列表,Q-Z
Microsoft 提供了第三方联系信息以便于您寻求技术支持。这些联系信息如有更改,恕不另行通知。Microsoft 不保证这些第三方联系信息的准确性。

在共享 Microsoft Jet 数据库时需要考虑的问题

我们建议您不要与 Windows NT 或 Windows 2000 客户端共享存储在 Microsoft Windows 95 文件共享、Microsoft Windows 98 文件共享或 Microsoft Windows Millennium Edition (Me) 文件共享中的 Microsoft Jet 数据库文件。

如果您有一个混合环境,即网络中的一些计算机运行 Windows 95、Windows 98 或 Windows Millennium Edition,一些计算机运行 Windows NT 或 Windows 2000,那么,当您与其他网络用户共享数据库时,我们建议您存储数据库文件,然后在禁用机会锁定的情况下,共享 Windows NT Server 或 Windows 2000 Server 上的数据库文件。

如果您让 Windows NT 或 Windows 2000 客户机共享存储在 Windows 95 文件共享、Windows 98 文件共享或 Windows Millennium Edition 文件共享中的文件,则可能发生文件损坏。即使 Windows NT 或 Windows 2000 客户端已禁用机会锁定,也会发生此问题。此问题仍在研究中。如有更多可用信息,我们会将其添加到本文中。

注意:运行 Microsoft Office Access 2003 的客户端必须安装有 Windows 2000 SP3 或更高版本或者 Windows XP 或更高版本的操作系统。

使用强健的文件服务器

确保有一个强健的文件服务器,该服务器必须有能力处理 Microsoft Jet 数据库文件的所有用户以及对此数据库文件的所有请求。另外,还要确保该文件服务器不要因处理许多其他进程而负载过重,如作为 Windows 域控制器、Exchange Server 或 SQL Server。

如果您重新启动该服务器以使用其他重要服务(如邮件服务)来修复某一问题,也会产生问题。如果您忘记 Microsoft Jet 数据库当前在服务器上共享,而在应用新软件或应用 Service Pack 或修复程序后重新启动服务器时,同样会产生问题。重新启动文件服务器时,到数据库的客户端连接会意外中断。这有可能导致数据库损坏。为防止客户端连接中断,所有客户端在重新启动文件服务器或者向文件服务器应用软件更新之前,都必须关闭数据库。

文件服务器还必须放置在一个安全的位置,以防止被意外关闭。此服务器必须使用不间断电源 (UPS) 以防止瞬间断电或功率波动。网络文件服务器必须具备以下组件:
  • 高性能硬盘驱动器
  • 高质量网卡
  • 充足的 RAM 以确保服务器能够处理加载

检查网络连接性

确保有一个稳定而快速的网络,而且它可以牢固地连接到网络文件服务器。我们建议您不要通过 WAN、调制解调器连接、FTP 或任何其他不太可靠的网络传输来使用 Microsoft Jet。因为 Microsoft Jet 是一种文件共享数据库系统,任何不太可靠的网络传输都会增加客户端断开连接的可能性。这会增加数据库损坏的几率。

尽量减少来自各个客户端的连接的数量

我们建议您安排让每个客户端使用一个到 Microsoft Jet 数据库的连接。每一个到 Jet 数据库的连接都代表一个使用此数据库的独立客户端,即使这些连接来自同一个客户端进程也是如此。

要优化性能和网络 I/O,减少后端数据库上的多用户压力,应将客户端应用程序设计为使用单个到 Jet 数据库的连接。如有必要,让多个记录集共享此连接。这样带来的一项附加好处是可以防止客户端应用程序中出现读/写延迟。默认情况下,在两个不同的 Jet 连接上进行读写操作时,向数据库写入值五秒钟后才能够读取此更新值。即使这两个连接存储在同一客户端进程中也是如此。如果使用单一连接,就可以避免此问题。

使用 ADO 访问 Microsoft Jet 数据库

当您从 ADO 访问 Microsoft Jet 数据库时,Microsoft 建议您使用 Microsoft Jet OLE DB 提供程序,而不要使用 Microsoft Access ODBC 驱动程序。 有关本主题的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
299974 将 IIS 与 Microsoft Jet 一起使用

迁移到事务数据库引擎以获得更好的完整性

与基于文件的数据库引擎不同,基于服务器的数据库引擎(如 Microsoft SQL Server)是在服务器上处理所有对数据库的多客户端请求的。服务器在事务日志中跟踪这些请求。如果无法满足请求,服务器将回滚该请求或不处理该请求。这可以降低数据库保留为不完整状态或损坏状态的风险。

不过,在从基于文件的数据库引擎升级到基于服务器的数据库引擎之前,请权衡这样做的优缺点。 有关选择最适合您的数据库引擎的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
168549 选择下载中心提供的合适的数据库白皮书
注意:尽管此白皮书是针对 Access 97 编写的,但是它也适用于 Jet 4.0 和 Access 2000。

参考

有关在数据库已被损坏的情况下应该如何操作的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
306204 如何排除 Microsoft Access 数据库中的损坏问题

304701 ACC2002:如何排除 Microsoft Access 数据库中的损坏问题

824271 关于排除 Office Access 2003 数据库中的损坏问题的说明


有关以前发布的文章涵盖的其他主题的其他信息,请单击下面的文章编号,以查看 Microsoft 知识库中相应的文章:
200300 如何使用 Jet OLE DB 提供程序和 ADO 使读写操作同步
283849 如何对损坏的 Access 2002 或更高版本数据库进行故障排除和修复
299974 将 IIS 与 Microsoft Jet 一起使用
296264 在 Windows 中配置机会锁定
129202 阐述 Windows NT 上的机会锁定
304408 如何远程关闭自定义 Access 应用程序
300216 如何保持 Jet 4.0 数据库处于最佳工作状态

属性

文章编号: 303528 - 最后修改: 2011年5月15日 - 修订: 7.0
这篇文章中的信息适用于:
  • Microsoft Office Access 2003
  • Microsoft Access 2002 标准版
关键字:?
kbhowtomaster KB303528
Microsoft和/或其各供应商对于为任何目的而在本服务器上发布的文件及有关图形所含信息的适用性,不作任何声明。 所有该等文件及有关图形均"依样"提供,而不带任何性质的保证。Microsoft和/或其各供应商特此声明,对所有与该等信息有关的保证和条件不负任何责任,该等保证和条件包括关于适销性、符合特定用途、所有权和非侵权的所有默示保证和条件。在任何情况下,在由于使用或运行本服务器上的信息所引起的或与该等使用或运行有关的诉讼中,Microsoft和/或其各供应商就因丧失使用、数据或利润所导致的任何特别的、间接的、衍生性的损害或任何因使用而丧失所导致的之损害、数据或利润不负任何责任。

提供反馈

 

Contact us for more help

Contact us for more help
Connect with Answer Desk for expert help.
Get more support from smallbusiness.support.microsoft.com