שליפות שעושות Downgrade
לפעמים יש צורך למצוא מהן השליפות שעשו downgrade במערכת ולא קיבלו מספיק parallel processes. צריך להבחין בין שני מקרים: מקרה שהשליפות קיבלו חלק מהמשאבים ומקרה שבהם הן לא קיבלו בכלל משאבים ועכשיו הן עובדות ב-serial.
כדי למצוא מהן השליפות שקיבלו downgrade (אבל עדיין עובדות ב-Parallel) ניתן להשתמש בשליפה הבאה. השליפה מחזירה רק את ה-PX coordinator (כלומר ה-SID של ההורה) ולא את כל הפרוססים עצמם:
SELECT a.sid parent_sid, a.logon_time, a.program, a.osuser, a.username, a.sql_id, ps.req_degree, ps.got_degree FROM (SELECT s.sid, s.osuser, s.USERNAME, s.status, s.sql_id, s.logon_time, s.last_call_et, UPPER(s.program) program FROM v$session s WHERE ((s.username IS NOT NULL) AND (NVL(s.osuser, 'x') <> 'SYSTEM') AND (s.TYPE <> 'BACKGROUND'))) a JOIN (SELECT DISTINCT qcsid, CASE WHEN req_degree > degree THEN 1 ELSE 0 END is_downgrade, MAX(req_degree) req_degree, MAX(degree) got_degree FROM v$px_session GROUP BY qcsid, CASE WHEN req_degree > degree THEN 1 ELSE 0 END) ps ON a.sid = ps.qcsid WHERE ps.is_downgrade = 1
כדי לאתר את השליפות שלא קיבלו פרוססים בכלל (ובעצם עשו downgrade to serial) ניתן להשתמש בשליפה הבאה:
SELECT sess.sid parent_sid, logon_time, sess.program, sess.osuser, sess.username, sql_id, TRUNC (last_call_et / 60) dur_minutes FROM v$sesstat sesstat, v$sysstat sysstat, v$session sess WHERE sesstat.statistic# = sysstat.statistic# AND sesstat.sid = sess.sid AND name = 'Parallel operations downgraded to serial' AND sesstat.VALUE > 0 AND sess.status = 'ACTIVE'