Univention Bugzilla – Bug 28633
optimize search filter of users/user in lookup() function
Last modified: 2017-07-05 13:06:03 CEST
Derzeit nutzt users/user den folgenden Suchfilter: (& (| (& (objectClass=posixAccount) (objectClass=shadowAccount) ) (objectClass=univentionMail) (objectClass=sambaSamAccount) (objectClass=simpleSecurityObject) (& (objectClass=person) (objectClass=organizationalPerson) (objectClass=inetOrgPerson) ) ) (!(uidNumber=0)) (!(uid=*$)) ) Wegen der SUP-Relation zwischen inetOrgPerson IS-A organizationalPerson IS-A person lassen sich die 3 zusammenfassen zu (objectClass=inetOrgPerson) Das verbessert leicht die Performance: # time univention-ldapsearch -xLLL '(&(|(&(objectClass=posixAccount)(objectClass=shadowAccount))(objectClass=univentionMail)(objectClass=sambaSamAccount)(objectClass=simpleSecurityObject)(&(objectClass=person)(objectClass=organizationalPerson)(objectClass=inetOrgPerson)))(!(uidNumber=0))(!(uid=*$)))' dn >/dev/null real 0m2.591s user 0m0.296s sys 0m0.136s # time univention-ldapsearch -xLLL '(&(|(&(objectClass=posixAccount)(objectClass=shadowAccount))(objectClass=univentionMail)(objectClass=sambaSamAccount)(objectClass=simpleSecurityObject)(objectClass=inetOrgPerson))(!(uidNumber=0))(!(uid=*$)))' dn >/dev/null real 0m2.348s user 0m0.316s sys 0m0.128s # univention-ldapsearch -xLLLb 'cn=Subschema' -s base objectClasses | ldapsearch-wrapper | egrep --color "NAME '[^']*[Pp]erson'|SUP \w*[Pp]erson" objectClasses: ... NAME 'organizationalPerson' ... SUP person objectClasses: ... NAME 'inetOrgPerson' ... SUP organizationalPerson
Applied rebased patch: r 80748 univention-directory-manager-modules (12.0.17-45) * Bug #28633: Applied patch from Philipp Hahn - Optimize search filter of users/user in lookup_filter() YAML: r 80750
OK: filter optimization OK: YAML
<http://errata.software-univention.de/ucs/4.2/79.html>