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

Dirk Pape pape-rt at inf.fu-berlin.de
Sat Jan 27 03:29:17 EST 2007


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?

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.





More information about the rt-users mailing list