第 2 章 提高视图的性能

基于视图的层次结构的性能取决于层次结构本身的结构以及目录树(DIT)中的条目数量。

般来说,如果您使用虚拟 DIT 视图,性能可能会有细微变化(在标准 DIT 上具有同等搜索的几分点)。如果您没有在搜索中调用视图,则不会产生性能影响。根据预期的搜索模式测试虚拟 DIT 视图,并在部署前加载。

如果您打算将视图用作组织中通用导航工具,红帽建议在查看过滤器中使用属性。

另外,您可以配置一个虚拟列表视图(VLV)索引,以便在视图中评估子过滤器。

不需要专门调优目录的任何其他部分,以供视图使用。

2.1. 使用命令行创建索引以提高视图的性能

视图是基于给定过滤器的搜索结果衍生。过滤器的一部分是 nsViewFilter 中明确给定的属性;过滤器的其余部分基于条目层次结构,查找在视图中包括的实际条目的 entryidparentid 操作属性。

(|(parentid=search_base_id)(entryid=search_base_id)

如果搜索的任何属性 - entryidparentidnsViewFilter - 中的属性没有索引,那么搜索就会成为部分未索引,并且目录服务器会搜索整个目录树中的匹配条目。

要提高查看性能,请按如下所示创建索引:

  • entryid 创建 相等的索引 (eq)。parentid 属性默认在系统索引中索引。
  • 如果 nsViewFilter 测试存在(attribute=*)中的过滤器,为正在测试的属性创建 presence index (pres)。您应该只在目录条目中以次要方式显示的属性使用此索引类型。
  • 如果在 nsViewFilter 测试相等度(attribute=value)中的过滤器,为正在测试的属性创建 相等的索引 (eq)。
  • 如果 nsViewFilter 中的过滤器测试子字符串(attribute=value*),为要测试的属性创建 子字符串索引 ()。
  • 如果 nsViewFilter 测试 approximation 的过滤器(属性~=value),为正在测试的属性创建大约 索引 (大约)。

例如,当您使用以下视图过滤器时:

nsViewFilter: (&(objectClass=inetOrgPerson)(roomNumber=*66))

您应该使用相等的 index 进行索引 (默认为 )和带有 子字符串 indexroomNumber

先决条件

  • 您了解您在视图过滤器中使用的属性。

流程

  1. 可选:列出后端以确定数据库进行索引:

    # dsconf -D "cn=Directory Manager" instance_name backend suffix list
    dc=example,dc=com (userroot)

    请注意所选数据库名称(在括号中)。

  2. 使用所选后端数据库的 dsconfig 实用程序创建索引配置。

    指定属性名称、索引类型以及可选的匹配规则来设置 collation order (OID),特别是在国际化实例时。

    # dsconf -D "cn=Directory Manager" instance_name backend index add --attr roomNumber --index-type sub userroot

    对 view 过滤器中使用的每个属性重复此步骤。

  3. 重新索引数据库以应用新索引:

    # dsconf -D "cn=Directory Manager" instance_name backend index reindex userroot

验证

  1. 使用您在视图中使用的相同过滤器执行基于标准目录树的搜索:

    # ldapsearch -D "cn=Directory Manager" -W -H ldap://server.example.com -x -b dc=example,dc=com (&(objectClass=inetOrgPerson)(roomNumber=*66))
    # ldapsearch -D "cn=Directory Manager" -W -H ldap://server.example.com -x -b dc=example,dc=com "(&(objectClass=inetOrgPerson)(roomNumber=*66))"
  2. 查看 /var/log/dirsrv/slapd-instance_name/ access 中的访问日志

    您搜索的 RESULT 应该不包含详情中的 note=UPartially Unindexed Filter

其他资源