[rt-users] [repost] Performance-Bug in SelfService when updated from 3.6.1 to 3.6.3

Jesse Vincent jesse at bestpractical.com
Sat Jan 27 03:36:24 EST 2007


I


On Sat, Jan 27, 2007 at 09:29:17AM +0100, Dirk Pape wrote:
> Hello,
> 
> does anybody have the same performance degration on 3.6.3 
> SelfService/index.html or do I have to dig into our special configuration??
> 
> If the latter, does anybody have a hint where to dig into?

I haven't seen it. It _does_ look like htat query is qgetting built
wrong.  I wonder if changing the search to be Watcher = rather than what
it is now would make it all better.

> 
> Dirk.
> 
> --Am 23. Januar 2007 08:39:38 +0100 schrieb Dirk Pape 
> <pape-rt at inf.fu-berlin.de>:
> 
> >Hello,
> >
> >I recently upgraded our test system from 3.6.1 to 3.6.3 and I observed a
> >performance problem in SelfService which is new. SelfService/index.html
> >takes more than 15 minutes to load on our server where RT.
> >
> >I tracked this issue down to a change in SelfService/Elements/MyRequest.
> >
> >In 3.6.1 and before SelfService only searched for Tickets of which the
> >User is requestor.
> >In 3.6.3 it searches for Tickets where user ist Requestor, AdminCc or Cc
> >of.
> >
> >This search is not well performed by my mysql db server (Ver 12.22
> >Distrib 4.0.24, for pc-linux-gnu (i386)) as reported by me in other
> >tickets before. I changed SelfService/Elements/MyRequest only to include
> >Tickets with requestor and the page is performing well again.
> >
> >All indexes are as specified by the default installation. I tested some
> >additional indexes whithout any success.
> >
> >Is this a known issue only applying to mysql? Only to mysql 4? Or why
> >does no others report this error?
> >
> >Here is the query and the "explaination":
> >
> ># Query_time: 805  Lock_time: 0  Rows_sent: 1  Rows_examined: 204821648
> >SELECT COUNT(DISTINCT main.id) FROM (((((((((Tickets main  JOIN Groups
> >Groups_4  ON ( Groups_4.Instance = main.id))  JOIN Groups Groups_7  ON (
> >Groups_7.Instance = main.id))  LEFT JOIN CachedGroupMembers
> >CachedGroupMembers_5  ON ((CachedGroupMembers_5.GroupId !=
> >CachedGroupMembers_5.MemberId)) AND (  CachedGroupMembers_5.GroupId =
> >Groups_4.id))  JOIN Groups Groups_1  ON ( Groups_1.Instance = main.id))
> >LEFT JOIN CachedGroupMembers CachedGroupMembers_8  ON (
> >CachedGroupMembers_8.GroupId = Groups_7.id) AND (
> >(CachedGroupMembers_8.GroupId != CachedGroupMembers_8.MemberId)))  LEFT
> >JOIN Users Users_6  ON ( Users_6.id = CachedGroupMembers_5.MemberId))
> >LEFT JOIN Users Users_9  ON ( Users_9.id =
> >CachedGroupMembers_8.MemberId))  LEFT JOIN CachedGroupMembers
> >CachedGroupMembers_2  ON ( CachedGroupMembers_2.GroupId = Groups_1.id)
> >AND ( (CachedGroupMembers_2.GroupId != CachedGroupMembers_2.MemberId)))
> >LEFT JOIN Users Users_3  ON ( Users_3.id =
> >CachedGroupMembers_2.MemberId)) WHERE ((Groups_1.Domain =
> >'RT::Ticket-Role')) AND ((Groups_1.Type = 'Requestor')) AND
> >((Groups_4.Domain = 'RT::Ticket-Role')) AND ((Groups_4.Type = 'Cc')) AND
> >((Groups_7.Domain = 'RT::Ticket-Role')) AND ((Groups_7.Type = 'AdminCc'))
> >AND ((main.EffectiveId = main.id)) AND ((main.Status != 'deleted')) AND
> >((main.Type = 'ticket')) AND ( (  ( (Users_3.EmailAddress = '') )  OR  (
> >(Users_6.EmailAddress = '') )  OR  ( (Users_9.EmailAddress = '') )  )
> >AND  ( (main.Status = 'open') OR (main.Status = 'new') OR (main.Status =
> >'stalled') ) );
> >
> >+----------------------+--------+-----------------+------------+---------
> >+-------------------------------+-------+--------------------------+
> >| table                | type   | possible_keys   | key        | key_len |
> >| ref                           | rows  | Extra                    |
> >+----------------------+--------+-----------------+------------+---------
> >+-------------------------------+-------+--------------------------+
> >| Groups_1             | ref    | Groups1,Groups2 | Groups2    |      65 |
> >| const                         | 51330 | Using where              | main
> >| | eq_ref | PRIMARY         | PRIMARY    |       4 | Groups_1.Instance
> >| |     1 | Using where              | Groups_7             | ref    |
> >| Groups1,Groups2 | Groups1    |      65 | const                         |
> >| 72594 | Using where; Using index | CachedGroupMembers_8 | ref    |
> >| DisGrouMem      | DisGrouMem |       5 | Groups_7.id                   |
> >| 1 | Using index              | Groups_4             | ref    |
> >| Groups1,Groups2 | Groups1    |      65 | const                         |
> >| 72594 | Using where; Using index | CachedGroupMembers_5 | ref    |
> >| DisGrouMem      | DisGrouMem |       5 | Groups_4.id                   |
> >| 1 | Using index              | Users_6              | eq_ref | PRIMARY
> >| | PRIMARY    |       4 | CachedGroupMembers_5.MemberId |     1 |
> >| | Users_9              | eq_ref | PRIMARY         | PRIMARY    |       4
> >| | CachedGroupMembers_8.MemberId |     1 |                          |
> >| CachedGroupMembers_2 | ref    | DisGrouMem      | DisGrouMem |       5 |
> >| Groups_1.id                   |     1 | Using index              |
> >| Users_3              | eq_ref | PRIMARY         | PRIMARY    |       4 |
> >| CachedGroupMembers_2.MemberId |     1 | Using where              |
> >+----------------------+--------+-----------------+------------+---------
> >+-------------------------------+-------+--------------------------+
> >10 rows in set (0.05 sec)
> >
> >Regards,
> >Dirk.
> 
> 
> _______________________________________________
> http://lists.bestpractical.com/cgi-bin/mailman/listinfo/rt-users
> 
> Community help: http://wiki.bestpractical.com
> Commercial support: sales at bestpractical.com
> 
> 
> Discover RT's hidden secrets with RT Essentials from O'Reilly Media. 
> Buy a copy at http://rtbook.bestpractical.com
> 

-- 



More information about the rt-users mailing list