[rt-devel] Query issue...
James L. Harrison
harrison at palisadesys.com
Fri Apr 18 13:24:25 EDT 2003
Here is the query that is causing all the grief... I think this only occurs
after you do a search with an email address contains restriction... click on
a ticket, and then click back, mysql utilization goes to 99%.
This is the initial search query:
SELECT DISTINCT main.* FROM Tickets main, Groups Groups_1, Principals
Principals_2, CachedGroupMembers CachedGroupMembers_3, Principals
Principals_4, Users Users_5, Groups Groups_6, Principals Principals_7,
CachedGroupMembers CachedGroupMembers_8, Principals Principals_9, Users
Users_10 WHERE ((main.EffectiveId = main.id)) AND ((main.Type =
'ticket')) AND ( ( (main.Subject LIKE '%screen%')AND(main.Subject LIKE
'%screen%') ) AND ( ( (Users_5.EmailAddress LIKE
'%harrison%')AND(Groups_1.Domain = 'RT::Ticket-Role')AND(Groups_1.Type =
'Requestor')AND(Principals_2.PrincipalType = 'Group') ) OR (
(Users_10.EmailAddress LIKE '%harrison%')AND(Groups_6.Domain =
'RT::Ticket-Role')AND(Groups_6.Type =
'Requestor')AND(Principals_7.PrincipalType = 'Group') ) ) ) AND
Groups_1.Instance = main.id AND Groups_1.id = Principals_2.ObjectId AND
Principals_2.id = CachedGroupMembers_3.GroupId AND
CachedGroupMembers_3.MemberId = Principals_4.id AND Principals_4.ObjectId =
Users_5.id AND Groups_6.Instance = main.id AND Groups_6.id =
Principals_7.ObjectId AND Principals_7.id = CachedGroupMembers_8.GroupId
AND CachedGroupMembers_8.MemberId = Principals_9.id AND
Principals_9.ObjectId = Users_10.id ORDER BY main.id ASC LIMIT 50
This query runs with no problem.
Now I click on a ticket, it displays, and I hit back. Mysql goes to 99%
usage on this query:
SELECT DISTINCT main.* FROM Tickets main, Groups Groups_1, Principals
Principals_2, CachedGroupMembers CachedGroupMembers_3, Principals
Principals_4, Users Users_5, Groups Groups_6, Principals Principals_7,
CachedGroupMembers CachedGroupMembers_8, Principals Principals_9, Users
Users_10 WHERE ((main.EffectiveId = main.id)) AND ((main.Type =
'ticket')) AND ( ( ( (Users_5.EmailAddress LIKE
'%harrison%')AND(Groups_1.Domain = 'RT::Ticket-Role')AND(Groups_1.Type =
'Requestor')AND(Principals_2.PrincipalType = 'Group') ) OR (
(Users_10.EmailAddress LIKE '%harrison%')AND(Groups_6.Domain =
'RT::Ticket-Role')AND(Groups_6.Type =
'Requestor')AND(Principals_7.PrincipalType = 'Group') ) ) AND ( (main.Queue
= '8') ) ) AND Groups_1.Instance = main.id AND Groups_1.id =
Principals_2.ObjectId AND Principals_2.id = CachedGroupMembers_3.GroupId
AND CachedGroupMembers_3.MemberId = Principals_4.id AND
Principals_4.ObjectId = Users_5.id AND Groups_6.Instance = main.id AND
Groups_6.id = Principals_7.ObjectId AND Principals_7.id =
CachedGroupMembers_8.GroupId AND CachedGroupMembers_8.MemberId =
Principals_9.id AND Principals_9.ObjectId = Users_10.id ORDER BY main.id
ASC LIMIT 50;
# User at Host: rt_user[rt_user] @ localhost []
# Query_time: 562 Lock_time: 0 Rows_sent: 0 Rows_examined: 56783101
they are different... The second one is not even looking for a subject of
"screen" like the first one.
The url that triggers this query is:
Listing.html?Bookmark=FrT%253B%25402%257C%25250%257C%25241%257C5&CompileRest
riction=1&OwnerOp=%3D&ValueOfOwner=&RequestorOp=LIKE&ValueOfRequestor=harris
on&SubjectOp=LIKE&ValueOfSubject=screen&QueueOp=%3D&ValueOfQueue=&PriorityOp
=%3C&ValueOfPriority=&DateType=Created&DateOp=%3C&ValueOfDate=&AttachmentFie
ld=Content&AttachmentFieldOp=LIKE&ValueOfAttachmentField=&StatusOp=%3D&Value
OfStatus=&RowsPerPage=50&TicketsSortBy=id&TicketsSortOrder=ASC&RefreshSearch
Interval=-1&Action=Search
Any thoughts?
-Jamie
---
James L. Harrison
harrison at palisadesys.com
Technical Support Engineer
Palisade Systems
515.296.0701
More information about the Rt-devel
mailing list