[Rt-devel] RT3.4.4: Peformance Ticket Update page

Dirk Pape pape-rt at inf.fu-berlin.de
Mon Jan 2 06:45:17 EST 2006


Hello,

I just upgraded from 3.2.3 to 3.4.4 and observe that displaying the page 
Ticket/Update.html takes much longer than before (about 10 sec.).

The rendering stops while displaying part of the left-side-menu.

mysql-slow.log conatins of the following queries (1 for each try on 
different tickets; Due to caching I think, the subsequent calls to 
Ticket/Update.html with the same Ticket are faster.):

# Time: 060102 12:33:06
# User at Host: rt_user[rt_user] @ localhost []
# Query_time: 8  Lock_time: 0  Rows_sent: 12  Rows_examined: 1039951
SELECT DISTINCT main.* FROM Users main , Principals Principals_1, ACL 
ACL_2, Groups Groups_3, CachedGroupMembers CachedGroupMembers_4  WHERE 
((ACL_2.RightName = 'OwnTicket')) AND ((CachedGroupMembers_4.MemberId = 
Principals_1.id)) AND ((Groups_3.id = CachedGroupMembers_4.GroupId)) AND 
((Principals_1.Disabled = '0')or(Principals_1.Disabled = '0')) AND 
((Principals_1.id != '1')) AND ((main.id = Principals_1.id)) AND  ( ( 
ACL_2.PrincipalId = Groups_3.id AND ACL_2.PrincipalType = 'Group'
                AND (   Groups_3.Domain = 'SystemInternal' OR 
Groups_3.Domain = 'UserDefined' OR Groups_3.Domain = 'ACLEquivalence'))
                 OR ( ( (Groups_3.Domain = 'RT::Queue-Role' AND 
Groups_3.Instance = 58)  OR ( Groups_3.Domain = 'RT::Ticket-Role' AND 
Groups_3.Instance = 17806)  )  AND Groups_3.Type = ACL_2.PrincipalType) ) 
AND (ACL_2.ObjectType = 'RT::System' OR  (ACL_2.ObjectType = 'RT::Queue' 
AND ACL_2.ObjectId = 58) )  ORDER BY main.Name ASC;


# Time: 060102 12:34:28
# User at Host: rt_user[rt_user] @ localhost []
# Query_time: 8  Lock_time: 0  Rows_sent: 2  Rows_examined: 1032971
SELECT DISTINCT main.* FROM Users main , Principals Principals_1, ACL 
ACL_2, Groups Groups_3, CachedGroupMembers CachedGroupMembers_4  WHERE 
((ACL_2.RightName = 'OwnTicket')) AND ((CachedGroupMembers_4.MemberId = 
Principals_1.id)) AND ((Groups_3.id = CachedGroupMembers_4.GroupId)) AND 
((Principals_1.Disabled = '0')or(Principals_1.Disabled = '0')) AND 
((Principals_1.id != '1')) AND ((main.id = Principals_1.id)) AND  ( ( 
ACL_2.PrincipalId = Groups_3.id AND ACL_2.PrincipalType = 'Group'
                AND (   Groups_3.Domain = 'SystemInternal' OR 
Groups_3.Domain = 'UserDefined' OR Groups_3.Domain = 'ACLEquivalence'))
                 OR ( ( (Groups_3.Domain = 'RT::Queue-Role' AND 
Groups_3.Instance = 48)  OR ( Groups_3.Domain = 'RT::Ticket-Role' AND 
Groups_3.Instance = 8308)  )  AND Groups_3.Type = ACL_2.PrincipalType) ) 
AND (ACL_2.ObjectType = 'RT::System' OR  (ACL_2.ObjectType = 'RT::Queue' 
AND ACL_2.ObjectId = 48) )  ORDER BY main.Name ASC;

#####

These are my keys on table CachedGroupMembers:

  PRIMARY KEY  (`id`),
  KEY `DisGrouMem` (`GroupId`,`MemberId`,`Disabled`),
  KEY `GrouMem` (`GroupId`,`MemberId`),
  KEY `user_MemberIdGroupId` (`MemberId`,`GroupId`),
  KEY `member1` (`MemberId`),
  KEY `CachedGroupMembersFKI1` (`ImmediateParentId`),
  KEY `CachedGroupMembersFKI2` (`MemberId`)

Thanks for any help.

Regards,
Dirk.

-- 
Dr. Dirk Pape (Projektleitung Campus Management)
Fachbereich Mathematik und Informatik der FU Berlin
Grunewaldstr. 34a, 12165 Berlin
Tel. +49 (30) 838 75143, Fax. +49 (30) 838 54654


More information about the Rt-devel mailing list