Datenbank Indexe – RT
RT kommt in der standard Installation bereits mit einigen Indexen daher, allerdings sind nicht alle wichtigen bereits implementiert, was wahrscheinlich daran liegt, dass irgendwer damit wohl irgendwie Geld verdienen will
Die wichtigsten und vor allem von mir/anderen Usern getesteten Indexe will ich hier erklären und vor allem aufzeigen, wie diese sich auswirken.
Indexe für den Shredder
Auf die Indexe für den Shredder bin ich bereits in diesem Post eingegangen, daher will ich diese hier nur noch kurz erwähnen.
- CREATE INDEX SHREDDER_CGM1 ON CachedGroupMembers(MemberId, GroupId, Disabled);
- CREATE INDEX SHREDDER_CGM2 ON CachedGroupMembers(ImmediateParentId, MemberId);
- CREATE UNIQUE INDEX SHREDDER_GM1 ON GroupMembers(MemberId, GroupId);
- CREATE INDEX SHREDDER_TXN1 ON Transactions(ReferenceType, OldReference);
- CREATE INDEX SHREDDER_TXN2 ON Transactions(ReferenceType, NewReference);
- CREATE INDEX SHREDDER_TXN3 ON Transactions(Type, OldValue);
- CREATE INDEX SHREDDER_TXN4 ON Transactions(Type, NewValue);
Kleiner Tip am Rande: Wenn Ihr für Euch, den RT installiert (aktuelle Version enthält den Shredder bereits) tut Euch selbst einen Gefallen und setzt diese Indexe direkt nach der Installation, wenn der RT bereits läuft und nicht erst, wenn Ihr alte Daten löschen müsst, sonst könnte es durchaus sehr, sehr lange dauern, wenn Ihr das nachträglich, in einer grossen DB machen müsst!
Indexe für die ACL Tabelle
Ein Problem auf das ich in den letzten Jahren immer mehr gestossen bin, sind die Ladezeiten im Admin Bereich für Gruppen Rechte. Egal ob auf Queue->GroupRights oder CustomField->GroupRights / Groups->GroupRights, dass dauert eine halbe Ewigkeit wenn man mehr als 5 oder 10 Gruppen im System hat. Bei uns sieht es vom normalen Setup so aus, dass wir pro Queue 5 Gruppen mit unterschiedlichen Rechten anlegen (Watcher, Full, Admin, RO, Create), da kommt bei 1500 Queue doch eine Menge an Gruppen zusammen. Zusätzlich zu diesen haben wir aber auch noch mal etwa die selbe Menge an Gruppen, die für Berechtigungen in Menü’s oder Untermenüs im RT verwendet werden, so dass wie vor einigen Jahren an dem Punkt waren, wo der Aufbau der Gruppenrechte Seite im RT unerträglich lange dauerte (teilweise 5!!! Minuten) was der Administration nicht gut tut.
Beim google’n bin ich irgendwann mal auf eine Reihe von Indexen für MySQL/PGSQL gestossen, die von anderen bereits erfolgreich getestet wurden, zwei davon betreffen halt die ACL Tabelle, die immer wieder in den SLOW Logs unserer DB auftaucht (wir messen alles länger 1sec). Diese laufen nicht sehr lange, allerdings wird die ACL Tabelle für die Gruppenrechte Tabelle pro Gruppe abgefragt, was bei vielen Gruppen einen den Tag echt versauen kann.
Folgende zwei Indexe haben hier Abhilfe geschaffen:
- CREATE INDEX ACL2 ON ACL(PrincipalId,PrincipalType);
- CREATE INDEX ACL3 ON ACL(ObjectType);
Der Aufbau der Gruppenrechte Vergabe hat sich von vielen Minuten auf etwa 10-15 sec verkürzt, was eine Administration nun wieder möglich macht! Viel Spass beim austesten
….wird fortgesetzt!
Categorie: Default
Updated at November 30, 2009 by admin, write at November 30, 2009 by admin | Log in