用于优化数据库性能的数据库属性

适当设置数据库属性可以改善活动数据库的性能。设置多个数据库或某个大型活动数据库的数据库性能属性还可改善服务器的性能。此外,有些属性设置也有助于减小数据库的大小。许多属性的设置需要具备应用程序设计的知识,数据库设计者常常在创建数据库时设置这些属性。

有关设计应用程序的信息,请参阅HCL Domino® Designer 帮助

先显示文档再显示图像

要快速显示包含图像的文档,请选择“基本”数据库属性在完全装入图像后再显示此图像。然后 Notes® 用户可以在装入图像时阅读该文本。如果不是先装入文本再装入图像,Notes® 将按图像在文档中出现的顺序装入图像;如果图像最先出现,Notes® 将在显示文本之前装入该图像。如果图像很大或连接速度很慢,按顺序装入图像可能会减慢文档的显示。

此设置仅在使用 Notes® 查看数据库时适用;Web 浏览器设置将控制图像对 Web 浏览器用户的显示。

注: 用户还可以在“位置”文档的“高级”部分中指定装入图像:根据请求,这样仅在用户单击时才会显示图像。有关更多信息,请参阅HCL Notes® 帮助

避免使用预先存储的表单

为确保文档总是正确显示,可将表单与文档一起存储。然而,将表单与每个文档一起存储会耗费系统内存,并且所需的磁盘空间比不一起存储时多 20 倍。要节省内存和磁盘空间,您可能需要避免使用预先存储的表单,特别是在用户试图读取文档时遇到性能问题的情况下。要避免使用预先存储的表单,请取消选择“基本”数据库属性允许在此数据库中使用预先存储的表单。避免使用预先存储的表单之前,应确保了解此设计功能如何工作以及数据库如何使用它。

设置未读标记选项

“数据库”对话框中包含一组未读标记选项,可用来保留或不保留未读标记,也可指定是否将未读标记复制到其它服务器上。如果选择数据库属性“不保留未读标记”,则数据库不保留未读标记,并禁用未读标记设置的复制。如果没有选择数据库属性“不保留未读标记”,则启用未读标记设置的复制。可以执行以下某个操作:

注: 通过选择“文件”-“数据库”-“属性”,然后单击“详细信息”标签,可以访问这些数据库属性。
  • 选择“Never” -- 永不复制未读标记
  • 选择“仅集群服务器” - 对于驻留在属于当前服务器集群成员的服务器上的数据库,复制未读标记。
  • 选择“所有服务器” -- 对于所有服务器上的数据库,复制未读标记。

不保留未读标记

在数据库中保留未读标记需要系统资源并且会显著降低数据库性能。对于某些数据库,未读标记并无用处 -- 例如,参考数据库(例如,随 Domino® 一起提供的帮助数据库)、管理数据库(例如 Domino® 目录)或不断更新的数据库(例如,日志文件 LOG.NSF)。在这些类型的数据库中,应考虑禁用未读标记。要禁用未读标记,请选择“高级”数据库属性不保留未读标记

注: 设计不显示未读标记的视图并不能改善数据库性能,因为这些未读标记仍然保留,仅仅是不显示而已。

如果选择或取消选择不保留未读标记属性,必须压缩数据库才能使设置生效。在这种情况下,压缩数据库将创建数据库的一个临时副本,因此系统必须具有创建副本所需的磁盘空间。

提示: 您也可以运行带有 -u 或 -U 选项的 Compact 服务器任务来启用或禁用该属性,然后进行压缩。

复制未读标记

复制未读标记时需要使用系统资源,因而会显著削弱数据库的性能。未读标记复制功能主要是为邮件数据库设计的。

将文档表格与表单关联以更新视图

更新视图时,Domino® 会引用文档信息表格。这些表格内部存储于数据库中。缺省情况下,在视图更新和重建过程中,Domino® 会搜索出现在要更新的视图中的文档的每个表格。要更有效地更新视图,请选择“高级”数据库属性优化文档表映射。此属性将表格与表格中包含的文档所使用的表单关联。这样,在视图更新过程中,Domino® 只搜索与要更新视图中的文档使用的表单关联的表格。这将显著改善视图更新的性能,特别是在大型数据库中更新小视图的情况下 -- 例如,更新“Domino® 目录”中的“连接”视图。

此属性仅对将 Form= 作为部分选择条件的视图生效。虽然维护表格/表单关联时会稍微降低性能;然而在大型数据库中更新小视图时,利大于弊。

如果选择或取消选择优化文档表格位图属性,必须压缩数据库才能使设置生效。在这种情况下,压缩数据库将创建数据库的一个临时副本,因此系统必须具有创建副本所需的磁盘空间。

提示: 您也可以运行带有 -F 或 -f 选项的 Compact 服务器任务来启用或禁用该属性,然后进行压缩。

避免覆盖已删除数据

从数据库中删除数据后,缺省情况下,Domino® 会采用某种模式覆盖磁盘上已删除的数据。此方式可避免未授权用户使用实用程序访问该数据。覆盖会影响磁盘 I/O 和数据库性能。

在以下情况下,应该避免覆盖已删除数据:

  • 数据已是安全的 -- 例如,数据库位于服务器上锁定的容器中。
  • 数据库中的已删除空间经常重新进行分配 -- 例如,在 MAIL.BOX 等系统数据库中。
  • 数据安全不是问题 -- 例如,在非正式讨论数据库中。

要防止覆盖已删除数据,请选择“高级”数据库属性不覆盖可用空间

不保留访问时间(此文件中)文档属性

“文档属性”框中会显示访问时间(此文件中)属性,此属性显示的是上次修改或读取文档的日期。“高级”数据库属性保留 LastAccessed 属性控制当上次文档访问操作为读取时是否更新访问时间(此文件中)属性。对读取操作保留访问时间(此文件中)属性会导致磁盘 I/O,而不保留该属性则不会发生磁盘 I/O。

缺省情况下,不会选择数据库属性保留 LastAccessed 属性,这意味着上次文档访问操作为读取时,不会更新访问时间(此文件中)属性;仅当上次文档访问操作为修改文档时,才会更新此属性。可以通过选择保留 LastAccessed 属性来更改缺省行为。

如果使用文档归档工具(在“数据库属性”框中提供了该工具),那么应该选择保留 LastAccessed 属性,这样可以根据非活动日期来删除文档。

禁用指定的答复层次信息

缺省情况下,每个文档都存储了用于将它与父文档或响应文档相关联的信息。只有经常用于视图选择和复制公式的 @AllChildren、@AllDescendants 和 @function 才使用此存储信息。保留此信息会严重降低数据库性能。

要改善数据库性能,请通过选择“高级”数据库属性不支持指定的答复层次在不使用这些 @function 的数据库中禁用答复层次信息。

禁用答复层次信息,对于未使用 @AllChildren 和 @AllDescendants 来分层次显示信息的视图和复制公式毫无影响。

禁用答复层次信息会将 NotesDocument.Responses 设置为 0 个文档。

如果选择或取消选择不支持指定的答复层次属性,必须压缩数据库才能使设置生效。在这种情况下,压缩数据库将创建数据库的一个临时副本,因此系统必须具有创建副本所需的磁盘空间。

提示: 您也可以运行带有 -h 或 -H 选项的 Compact 服务器任务来启用或禁用该属性,然后进行压缩。

避免标题监控

用户可以设置标题监控来自动监控数据库,以查找他们感兴趣的信息。以这种方式监控数据库将影响数据库性能,尤其当多个用户都这样做时。要避免用户监控数据库,请选择“高级”数据库属性不允许标题监控。您也可以使用 Domino® 目录中的“服务器”文档的“安全”部分在服务器级控制标题监控。

允许在数据库中使用更多字段

您可以通过选择高级数据库属性允许在数据库中使用更多字段增加数据库中字段的数目,此选项允许数据库包含多达 23,000 个字段。

对于没有选择此选项的数据库,数据库中的所有字段名称连接起来不能超过 64 KB,这会导致数据库选项字段的数量限制在大约 3000 以内。

对附件使用 LZ1 压缩

Domino® Designer 中,可以选择使用新的 LZ1 算法而不是 Huffman 算法来压缩附件。LZ1 压缩能够快速高效地执行,比 Huffman 方法更受欢迎。但是,如果在使用不同版本客户机和服务器软件的环境下工作,并且选中了该选项,附件将在服务器上使用 Huffman 方法自动重新压缩。注意重新压缩对性能有影响。

注: 选择了 LZ1 算法后,系统不会使用 LZ1 算法来自动压缩现有数据库中的附件,但会使用 LZ1 算法来压缩在启用 LZ1 算法选项后附加的文件。通过检查文档属性中的“$File”字段,可以识别所用的压缩算法。

有关 LZ1 算法的更多信息,请参阅HCL Domino® Designer 帮助

限制 $UpdatedBy 字段的大小

缺省情况下,每个文档都包含一个 $UpdatedBy 字段,该字段存储与每个文档编辑会话相关联的用户名或服务器名。存储完整的编辑历史记录会占用磁盘空间并减慢视图更新和复制的速度。要节省磁盘空间并改善数据库性能,请使用“高级”数据库属性限制 $UpdatedBy 字段的条目来指定 $UpdatedBy 字段可包含的条目数。当 $UpdatedBy 字段的项目数达到此限制时,会删除最旧的项目,为最新的项目腾出空间。

限制 $Revisions 字段的大小

缺省情况下,每个文档都包含一个 $Revisions 字段,此字段存储每个文档编辑会话的日期和时间。当两个用户同时编辑某个副本中的同一个文档或编辑相互复制的不同副本中的同一个文档时,Domino® 使用此字段来解决复制或保存冲突。

缺省情况下,$Revisions 字段最多可存储 500 个编辑会话的历史记录,每个编辑会话需要 8 字节的磁盘空间。随着时间的推移,$Revisions 字段会越来越大,这将占用磁盘空间并减慢视图更新和复制速度。要节省磁盘空间并改善数据库性能,请使用“高级”数据库属性限制 $Revisions 字段的条目来指定 $Revisions 字段可包含的条目数。当 $Revisions 字段中的项目数达到此限制时,会删除最旧的项目,为最新的项目腾出空间。

在具有以下所有特征的数据库中应考虑限制 $Revisions 字段中的项目:

  • 数据库包含许多文档。
  • 数据库经常复制或者没有副本。
  • 数据库包含不常编辑的文档。

建议 $Revisions 字段中的最大条目数为 10 个。如果将最大值设置为低于 10 个,那么会有增加复制或保存冲突的风险。

指定软删除的到期时间

选择允许软删除时,标记为删除的文档在被删除前将在数据库中保留指定的一段时间。可以在数据库属性框的“高级”选项卡中,指定文档从数据库中删除前保留的小时数。

使用 Domino® 附件和对象服务

选择使用 Domino 附件和对象服务时,数据库会参与附件合并(如果该功能在服务器上已启用)。缺省情况下,新创建的数据库会参与合并。保存在数据库的文档中的文件附件将添加到核心附件库,该库中的附件可由参与合并的任何数据库重复使用。在所有显示附件的文档中,各附件会替换为对附件库中文件位置的引用。

在“服务器”文档的 DAOS 选项卡上,可以为服务器启用附件合并、指定附件最小大小,以及在服务器上为附件存储库指定文件位置。如果附件小于最小大小,Domino® 将禁止对其进行合并。

附件合并通过显著减少存储附件所需的磁盘空间量提高了性能。

在此 Domino® 版本中,优化 DAOS 对象的拷贝可防止不必要的附件副本在 Notes® 客户机和 DAOS 启用的服务器之间传输。此优化将显著提高在答复、转发或复制包含已存在于 DAOS 存储库中的附件的消息/文档时的传输速度。

压缩数据库设计

数据库设计压缩指对 Notes® 数据库中的设计元素进行压缩。压缩设计元素,特别是那些包含富文本和图形的元素,可减小元素在磁盘上的大小,显著节省磁盘空间。

压缩文档数据

文档压缩指对 Notes® 文档中的非摘要(正文)数据进行压缩。压缩非摘要数据可减小文档中所有富文本元素在磁盘上的大小,显著节省磁盘空间,在数据库包含带有大图像的冗长文件时压缩效果尤其显著。