תופעה מעניינת עם כלים שמחזירים row set בגודל מסויים ושמאפשרים לעשות fetching היא שאם השליפה המקורית הייתה מקבילית (parallel) הכלים נוטים שלא לשחרר את הפרוססים שהם השתמשו בהם בשביל השליפה ולתפוס אותם כל עוד לא נעשתה שליפה אחרת באותו חלון.
אז מה בעצם הבעיה? הבעיה היא שכאשר יש load גבוה על המערכת ויש צורך ב-Parallel servers, התוכנות האלה מחזיקות את המשאבים ושליפות אחרות מקבלות downgrade.
שני כלים שעושים את זה הם TOAD ו-PL/SQL Developer וניתן להשתמש בשליפה הבאה כדי לאתר מי הם הסשנים שנראים Inactive אבל בפועל הם תופסים משאבים (השליפה הזו נעטפה על ידי סקריפט CSH שגם מעיף את המשתמשים האלה כאשר הם מחזיקים את המשאבים יותר מדי זמן):
with curr_sessions as (
SELECT ROUND(BITAND(s.ownerid, 65535)) parent_session_sid,
s.sid,
s.status,
s.sql_id,
UPPER(s.program) program
FROM v$session s, v$process p
WHERE ((s.username IS NOT NULL) AND (NVL(s.osuser, 'x') <> 'SYSTEM') AND (s.TYPE <> 'BACKGROUND'))
AND (p.addr(+) = s.paddr))
select distinct a.sid parent, b.sid child, a.status status_p, b.status status_c, a.program, a.sql_id
from curr_sessions a
join curr_sessions b on a.sid = b.parent_Session_sid
and a.status = 'INACTIVE'
and a.program in ('TOAD.EXE')
order by 1