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