Hi Team,
Occasionally, our OS Ticket application experiences hangs, preventing agents from logging in due to blocking. When this occurs, I execute the "SHOW FULL PROCESSLIST;" command in MySQL and find specific SELECT queries that appear to be the cause.
(
SELECT B5.address AS user__default_email__address
,B6.subject AS cdata__subject
,B4.name AS user__name
,A1.ticket_id AS ticket_id
,A3.id AS thread__id
,A1.flags AS flags
,A1.number AS number
,1 AS tickets
,COUNT(DISTINCT B7.id) AS tasks
,COUNT(DISTINCT B8.id) AS collaborators
,COUNT(DISTINCT C0.id) AS entries
FROM ost_ticket A1
JOIN ost_ticket_status A2 ON (A1.status_id = A2.id)
LEFT JOIN ost_thread A3 ON (
A3.object_type = 'T'
AND A1.ticket_id = A3.object_id
)
LEFT JOIN ost_thread_referral A4 ON (A3.id = A4.thread_id)
LEFT JOIN ost_staff A5 ON (
A4.object_type = 'S'
AND A4.object_id = A5.staff_id
)
LEFT JOIN ost_thread A6 ON (
A1.ticket_id = A6.object_id
AND A6.object_type = 'C'
)
LEFT JOIN ost_thread_referral A7 ON (A6.id = A7.thread_id)
LEFT JOIN ost_staff A8 ON (
A7.object_type = 'S'
AND A7.object_id = A8.staff_id
)
LEFT JOIN ost_team B0 ON (
A4.object_type = 'E'
AND A4.object_id = B0.team_id
)
LEFT JOIN ost_team B1 ON (
A7.object_type = 'E'
AND A7.object_id = B1.team_id
)
LEFT JOIN ost_department B2 ON (
A4.object_type = 'D'
AND A4.object_id = B2.id
)
LEFT JOIN ost_department B3 ON (
A7.object_type = 'D'
AND A7.object_id = B3.id
)
LEFT JOIN ost_user B4 ON (A1.user_id = B4.id)
LEFT JOIN ost_user_email B5 ON (B4.default_email_id = B5.id)
LEFT JOIN ost_ticket__cdata B6 ON (A1.ticket_id = B6.ticket_id)
LEFT JOIN ost_task B7 ON (A1.ticket_id = B7.object_id)
LEFT JOIN ost_thread_collaborator B8 ON (A3.id = B8.thread_id)
LEFT JOIN ost_thread_entry C0 ON (A3.id = C0.thread_id)
WHERE (
(
A2.state IN (
'open'
,'closed'
)
AND (
A1.staff_id = 8
OR A5.staff_id = 8
OR A6.object_type = 'C'
AND A8.staff_id = 8
OR A1.team_id IN (
1
,2
,5
,4
)
OR B0.team_id IN (
1
,2
,5
,4
)
OR A6.object_type = 'C'
AND B1.team_id IN (
1
,2
,5
,4
)
)
)
OR A1.dept_id IN (
1
,2
,4
,5
,6
,7
,8
)
OR B2.id IN (
1
,2
,4
,5
,6
,7
,8
)
OR A6.object_type = 'C'
AND B3.id IN (
1
,2
,4
,5
,6
,7
,8
)
)
AND A1.number LIKE '20 @0Z@ Cancellation document number of contract partner changed CCC-154217%'
GROUP BY A1.ticket_id
ORDER BY A1.number ASC
)
UNION ALL
(
SELECT B5.address AS user__default_email__address
,B6.subject AS cdata__subject
,B4.name AS user__name
,A1.ticket_id AS ticket_id
,A3.id AS thread__id
,A1.flags AS flags
,NULL AS number
,COUNT(DISTINCT A1.ticket_id) AS tickets
,COUNT(DISTINCT B7.id) AS tasks
,COUNT(DISTINCT B8.id) AS collaborators
,COUNT(DISTINCT C0.id) AS entries
FROM ost_ticket A1
JOIN ost_ticket_status A2 ON (A1.status_id = A2.id)
LEFT JOIN ost_thread A3 ON (
A3.object_type = 'T'
AND A1.ticket_id = A3.object_id
)
LEFT JOIN ost_thread_referral A4 ON (A3.id = A4.thread_id)
LEFT JOIN ost_staff A5 ON (
A4.object_type = 'S'
AND A4.object_id = A5.staff_id
)
LEFT JOIN ost_thread A6 ON (
A1.ticket_id = A6.object_id
AND A6.object_type = 'C'
)
LEFT JOIN ost_thread_referral A7 ON (A6.id = A7.thread_id)
LEFT JOIN ost_staff A8 ON (
A7.object_type = 'S'
AND A7.object_id = A8.staff_id
)
LEFT JOIN ost_team B0 ON (
A4.object_type = 'E'
AND A4.object_id = B0.team_id
)
LEFT JOIN ost_team B1 ON (
A7.object_type = 'E'
AND A7.object_id = B1.team_id
)
LEFT JOIN ost_department B2 ON (
A4.object_type = 'D'
AND A4.object_id = B2.id
)
LEFT JOIN ost_department B3 ON (
A7.object_type = 'D'
AND A7.object_id = B3.id
)
LEFT JOIN ost_user B4 ON (A1.user_id = B4.id)
LEFT JOIN ost_user_email B5 ON (B4.default_email_id = B5.id)
LEFT JOIN ost_ticket__cdata B6 ON (A1.ticket_id = B6.ticket_id)
LEFT JOIN ost_task B7 ON (A1.ticket_id = B7.object_id)
LEFT JOIN ost_thread_collaborator B8 ON (A3.id = B8.thread_id)
LEFT JOIN ost_thread_entry C0 ON (A3.id = C0.thread_id)
JOIN (
SELECT COALESCE(Z3.object_id, Z5.ticket_id, Z8.ticket_id) AS ticket_id
,Z1.relevance
FROM (
SELECT Z1.object_id
,Z1.object_type
,MATCH(Z1.title, Z1.content) AGAINST('20 @0Z@ Cancellation document number of contract partner changed CCC-154217' IN NATURAL LANGUAGE MODE) AS relevance
FROM ost__search Z1
WHERE MATCH(Z1.title, Z1.content) AGAINST('20 @0Z@ Cancellation document number of contract partner changed CCC-154217' IN NATURAL LANGUAGE MODE)
ORDER BY relevance DESC
) Z1
LEFT JOIN ost_thread_entry Z2 ON (
Z1.object_type = 'H'
AND Z1.object_id = Z2.id
)
LEFT JOIN ost_thread Z3 ON (
Z2.thread_id = Z3.id
AND (
Z3.object_type = 'T'
OR Z3.object_type = 'C'
)
)
LEFT JOIN ost_ticket Z5 ON (
Z1.object_type = 'T'
AND Z1.object_id = Z5.ticket_id
)
LEFT JOIN ost_user Z6 ON (
Z6.id = Z1.object_id
AND Z1.object_type = 'U'
)
LEFT JOIN ost_organization Z7 ON (
Z7.id = Z1.object_id
AND Z7.id = Z6.org_id
AND Z1.object_type = 'O'
)
LEFT JOIN ost_ticket Z8 ON (Z8.user_id = Z6.id)
) Z1
WHERE (
(
A2.state IN (
'open'
,'closed'
)
AND (
A1.staff_id = 8
OR A5.staff_id = 8
OR A6.object_type = 'C'
AND A8.staff_id = 8
OR A1.team_id IN (
1
,2
,5
,4
)
OR B0.team_id IN (
1
,2
,5
,4
)
OR A6.object_type = 'C'
AND B1.team_id IN (
1
,2
,5
,4
)
)
)
OR A1.dept_id IN (
1
,2
,4
,5
,6
,7
,8
)
OR B2.id IN (
1
,2
,4
,5
,6
,7
,8
)
OR A6.object_type = 'C'
AND B3.id IN (
1
,2
,4
,5
,6
,7
,8
)
)
AND A1.ticket_id = Z1.ticket_id
GROUP BY B5.address
ORDER BY Z1.relevance LIMIT 25
) LIMIT 25