- Edited
We have upgraded osTicket version to 1.16 today (from 1.12) with this we also needed to upgrade our php version to 8 (from 7.2). We have followed the upgrade guide step by step, ran the upgrade wizard after updating the files. But the performance is now absolutely terrible. Going to /scp page fires up a query which uses up all of the server's resources and ends up executing for around 5 minutes, earlier (before the upgrade) it used to be almost instant. What could I check/do to potentially fix this issue?
OS - Windows server 2016
Mysql - 10.4.8-MariaDB
osTicket version - 1.16
php version - 8.0
And this is the query that it runs forever
SELECT COUNT(DISTINCT CASE WHEN A2.
state= 'open' AND A2.
state= 'open' AND A2.
state= 'open' AND A1.
dept_id= 1 AND A1.
team_id= 0 AND A1.
staff_id= 0 AND A3.
object_type= 'T' THEN A1.
ticket_idEND) AS
q15, COUNT(DISTINCT CASE WHEN (A1.
team_idIN (2) OR A1.
staff_idIN (4)) AND A2.
state= 'open' AND (A1.
team_idIN (2) OR A1.
staff_idIN (4)) AND A2.
state= 'open' AND (A1.
team_idIN (2) OR A1.
staff_idIN (4)) AND A2.
state= 'open' AND B4.
priorityREGEXP '\"?1(\"|,|$)' AND A3.
object_type= 'T' THEN A1.
ticket_idEND) AS
q18, COUNT(DISTINCT CASE WHEN (A1.
team_idIN (2) OR A1.
staff_idIN (4)) AND A2.
state= 'open' AND (A1.
team_idIN (2) OR A1.
staff_idIN (4)) AND A2.
state= 'open' AND (A1.
team_idIN (2) OR A1.
staff_idIN (4)) AND A2.
state= 'open' AND NOT B4.
priorityREGEXP '\"?1(\"|,|$)' AND A3.
object_type= 'T' THEN A1.
ticket_idEND) AS
q19, COUNT(DISTINCT CASE WHEN A2.
state= 'open' AND A1.
isanswered= '0' AND A2.
state= 'open' AND A1.
isanswered= '0' AND A2.
state= 'open' AND A1.
isanswered= '0' AND A1.
staff_idIN (4, 2) AND NOT B4.
priorityREGEXP '\"?1(\"|,|$)' AND A3.
object_type= 'T' THEN A1.
ticket_idEND) AS
q27, COUNT(DISTINCT CASE WHEN A2.
state= 'open' AND A2.
state= 'open' AND A2.
state= 'open' AND A2.
idIN (8) AND A3.
object_type= 'T' THEN A1.
ticket_idEND) AS
q30, COUNT(DISTINCT CASE WHEN A2.
state= 'open' AND A2.
state= 'open' AND A2.
state= 'open' AND A1.
dept_id= 3 AND A1.
team_id= 0 AND A1.
staff_id= 0 AND A3.
object_type= 'T' THEN A1.
ticket_idEND) AS
q32, COUNT(DISTINCT CASE WHEN A2.
state= 'open' AND A2.
state= 'open' AND A2.
state= 'open' AND A1.
staff_id= 45 AND NOT A2.
idIN (10) AND A3.
object_type= 'T' THEN A1.
ticket_idEND) AS
q33, COUNT(DISTINCT CASE WHEN A2.
state= 'open' AND A2.
state= 'open' AND A2.
state= 'open' AND A1.
staff_idIN (48) AND A3.
object_type= 'T' THEN A1.
ticket_idEND) AS
q34, COUNT(DISTINCT CASE WHEN A2.
state= 'open' AND A2.
state= 'open' AND A2.
state= 'open' AND A1.
staff_idIN (2) AND A3.
object_type= 'T' THEN A1.
ticket_idEND) AS
q35, COUNT(DISTINCT CASE WHEN A2.
state= 'open' AND A2.
state= 'open' AND A2.
state= 'open' AND A1.
staff_idIN (4) AND A3.
object_type= 'T' THEN A1.
ticket_idEND) AS
q36, COUNT(DISTINCT CASE WHEN A2.
state= 'open' AND A2.
state= 'open' AND A2.
state= 'open' AND A2.
idIN (10) AND A1.
staff_id= 45 AND A3.
object_type= 'T' THEN A1.
ticket_idEND) AS
q38, COUNT(DISTINCT CASE WHEN A2.
state= 'open' AND A3.
object_type= 'T' THEN A1.
ticket_idEND) AS
q1, COUNT(DISTINCT CASE WHEN A2.
state= 'open' AND A2.
state= 'open' AND A1.
isanswered= '0' AND A3.
object_type= 'T' THEN A1.
ticket_idEND) AS
q2, COUNT(DISTINCT CASE WHEN (A1.
team_idIN (2) OR A1.
staff_idIN (4)) AND A2.
state= 'open' AND (A1.
team_idIN (2) OR A1.
staff_idIN (4)) AND A2.
state= 'open' AND A1.
staff_idIN (4) AND A3.
object_type= 'T' THEN A1.
ticket_idEND) AS
q6, COUNT(DISTINCT CASE WHEN A2.
state= 'closed' AND A2.
state= 'closed' AND A1.
closedBETWEEN '2022-08-01 00:00:00' AND '2022-08-01 23:59:59' AND A3.
object_type= 'T' THEN A1.
ticket_idEND) AS
q9, COUNT(DISTINCT CASE WHEN A2.
state= 'open' AND A2.
state= 'open' AND A1.
isanswered= '1' AND A3.
object_type= 'T' THEN A1.
ticket_idEND) AS
q3, COUNT(DISTINCT CASE WHEN (A1.
team_idIN (2) OR A1.
staff_idIN (4)) AND A2.
state= 'open' AND (A1.
team_idIN (2) OR A1.
staff_idIN (4)) AND A2.
state= 'open' AND NOT A1.
staff_idIN (4) AND A3.
object_type= 'T' THEN A1.
ticket_idEND) AS
q7, COUNT(DISTINCT CASE WHEN A2.
state= 'closed' AND A2.
state= 'closed' AND A1.
closedBETWEEN '2022-07-31 00:00:00' AND '2022-07-31 23:59:59' AND A3.
object_type= 'T' THEN A1.
ticket_idEND) AS
q10, COUNT(DISTINCT CASE WHEN A2.
state= 'open' AND A2.
state= 'open' AND A1.
isoverdue= '1' AND A3.
object_type= 'T' THEN A1.
ticket_idEND) AS
q4, COUNT(DISTINCT CASE WHEN (A1.
team_idIN (2) OR A1.
staff_idIN (4)) AND A2.
state= 'open' AND A3.
object_type= 'T' THEN A1.
ticket_idEND) AS
q5, COUNT(DISTINCT CASE WHEN A2.
state= 'closed' AND A2.
state= 'closed' AND A1.
closedBETWEEN '2022-08-01 00:00:00' AND '2022-08-07 23:59:59' AND A3.
object_type= 'T' THEN A1.
ticket_idEND) AS
q11, COUNT(DISTINCT CASE WHEN A2.
state= 'closed' AND A3.
object_type= 'T' THEN A1.
ticket_idEND) AS
q8, COUNT(DISTINCT CASE WHEN A2.
state= 'closed' AND A2.
state= 'closed' AND A1.
closedBETWEEN '2022-08-01 00:00:00' AND '2022-08-31 23:59:59' AND A3.
object_type= 'T' THEN A1.
ticket_idEND) AS
q12, COUNT(DISTINCT CASE WHEN A2.
state= 'closed' AND A2.
state= 'closed' AND A1.
closedBETWEEN '2022-07-01 00:00:00' AND '2022-09-30 23:59:59' AND A3.
object_type= 'T' THEN A1.
ticket_idEND) AS
q13, COUNT(DISTINCT CASE WHEN A2.
state= 'closed' AND A2.
state= 'closed' AND A1.
closedBETWEEN '2022-01-01 00:00:00' AND '2022-12-31 23:59:59' AND A3.
object_type= 'T' THEN A1.
ticket_idEND) AS
q14FROM
ost_ticketA1 JOIN
ost_ticket_statusA2 ON (A1.
status_id= A2.
id) LEFT JOIN
ost_threadA3 ON (A3.
object_type= 'T' AND A1.
ticket_id= A3.
object_id) LEFT JOIN
ost_thread_referralA4 ON (A3.
id= A4.
thread_id) LEFT JOIN
ost_staffA5 ON (A4.
object_type= 'S' AND A4.
object_id= A5.
staff_id) LEFT JOIN
ost_threadA6 ON (A1.
ticket_id= A6.
object_idAND A6.
object_type= 'C') LEFT JOIN
ost_thread_referralA7 ON (A6.
id= A7.
thread_id) LEFT JOIN
ost_staffA8 ON (A7.
object_type= 'S' AND A7.
object_id= A8.
staff_id) LEFT JOIN
ost_teamB0 ON (A4.
object_type= 'E' AND A4.
object_id= B0.
team_id) LEFT JOIN
ost_teamB1 ON (A7.
object_type= 'E' AND A7.
object_id= B1.
team_id) LEFT JOIN
ost_departmentB2 ON (A4.
object_type= 'D' AND A4.
object_id= B2.
id) LEFT JOIN
ost_departmentB3 ON (A7.
object_type= 'D' AND A7.
object_id= B3.
id) LEFT JOIN
ost_ticket__cdataB4 ON (A1.
ticket_id= B4.
ticket_id) WHERE ((A2.
state= 'open' AND (A1.
staff_id= 4 OR A5.
staff_id= 4 OR A6.
object_type= 'C' AND A8.
staff_id= 4 OR A1.
team_idIN (2) OR B0.
team_idIN (2) OR A6.
object_type= 'C' AND B1.
team_idIN (2))) OR (A2.
stateIN ('open', 'closed') AND (A1.
dept_idIN (1, 3) OR B2.
idIN (1, 3))) OR A6.
object_type= 'C' AND B3.
idIN (1, 3))