É possível examinar o plano de execução de uma instrução SQL executada dentro de um bloco PLSQL?
DECLARE
l_count PLS_INTEGER;
BEGIN
SELECT COUNT(1) INTO l_count
FROM foo;
END;
/
Para SQL regular, eu normalmente executaria o seguinte para verificar o plano de execução:
select * from table(dbms_xplan.display_cursor(null, null, 'ALLSTATS LAST'));
No entanto, isso apenas relata:
NOTE: cannot fetch plan for SQL_ID: 3q0sujncq54wy, CHILD_NUMBER: 0
Please verify value of SQL_ID and CHILD_NUMBER;
It could also be that the plan is no longer in cursor cache (check v$sql_plan)