If we want to analyse execution plans on the SQL console, we probably need to find a SQL_ID
first, which we can the pass to the DBMS_XPLAN.DISPLAY_CURSOR
function. One way to find this SQL_ID
is by querying the v$sql
table first, e.g.:
SELECT last_active_time, sql_id, child_number, sql_text FROM v$sql WHERE upper(sql_fulltext) LIKE '%SOME_SQL_TEXT%' ORDER BY last_active_time DESC;
Now, often, you will then get an error message like:
ORA-00942: table or view does not exist
This simply means that you do not have the required privileges to select from that table. Have your DBA give you the required grant, or do it yourself on your local Oracle instance with:
C:\> sqlplus "/ as sysdba" SQL> GRANT SELECT ANY DICTIONARY TO MY_USER; Grant succeeded
Done. You can now query v$sql
More details about how to analyse execution plans on the SQL console can be seen here.
Filed under: sql Tagged: dictionary views, execution plan, GRANTS, ORA-00942, Oracle, sql, v$sql
