Я пытаюсь проанализировать план выполнения запроса в моей базе данных Oracle.Я установил
alter system set statistics_level = all;
Так, чтобы я мог сравнивать приблизительные значения количества и времени с фактическим количеством элементов и временем.Теперь я запускаю этот оператор для отображения этой информации.
select * from table(dbms_xplan.display_cursor(
sql_id => '6dt9vvx9gmd1x',
cursor_child_no => 2,
FORMAT => 'ALLSTATS LAST'));
Но я продолжаю получать это сообщение
NOTE: cannot fetch plan for SQL_ID: 6dt9vvx9gmd1x, CHILD_NUMBER: 2
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)
CHILD_NUMBER
был верным, когда запрос находилсяказнены.Кроме того, когда я запускаю dbms_xplan.display_cursor
одновременно с запросом, я получаю фактический план.Но мое JDBC-соединение закрывает PreparedStatement
сразу после выполнения, поэтому, может быть, поэтому план выполнения исчезает из v$sql_plan
.
Я получаю что-то не так или как я могу проанализировать оценочные / фактические значения после выполнения?