1. EXPLAIN PLAN Statement:
- Creating the PLAN_TABLE (if it doesn't exist):
@$ORACLE_HOME/rdbms/admin/utlxplan.sql
- Generating the Explain Plan:
EXPLAIN PLAN SET STATEMENT_ID = 'my_query_1' FORSELECT e.employee_id, e.first_name, d.department_nameFROM employees eJOIN departments d ON e.department_id = d.department_idWHERE d.location_id = 1700;
- Displaying the Explain Plan using DBMS_XPLAN:
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY('PLAN_TABLE', 'my_query_1', 'ALL'));
Simple Example:
EXPLAIN PLAN FOR SELECT * FROM employees WHERE department_id = 10;
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);
2. Using sql_id from cursor in oracle
To generate an explain plan using a SQL_ID from a cursor in Oracle, you can use the DBMS_XPLAN.DISPLAY_CURSOR function, specifying the SQL_ID and optionally the CHILD_NUMBER.
1. Identify the SQL_ID:
SELECT SQL_ID, SQL_TEXT FROM V$SQL WHERE SQL_TEXT LIKE '%your_sql_text%';
it can also be found
- find the PREV_SQL_ID in V$SESSION.
- find SQL_ID from SQL-trace, AWR reports, or ASH reports.
SELECT SQL_ID, SQL_TEXT FROM DBA_HIST_SQLTEXT WHERE SQL_ID = 'your_sql_id';
2. Use DBMS_XPLAN.DISPLAY_CURSOR:
SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR(SQL_ID => 'your_sql_id', CHILD_NUMBER => 1, FORMAT => 'ALL'));
No comments:
Post a Comment