Explain Codes LogoExplain Codes Logo

How do I view the Explain Plan in Oracle SQL developer?

sql
explain-plan
sql-developer
performance-tuning
Anton ShumikhinbyAnton Shumikhin·Dec 18, 2024
TLDR

To swiftly generate an Explain Plan in Oracle SQL Developer:

  1. Right-click your written SQL statement.
  2. Choose Explain Plan, or just press F10.

Post-execute your query with 'Run Statement' (F9). Lastly, for a refined plan output, run the following:

// Because seeing is believing! 😉 SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY);

This process elucidates the path chosen by SQL's optimizer, illuminating how efficient your query is.

Getting the ball rolling

Ensure that you have executed your SQL query at least once before attempting to generate its execution plan. When you see a "Plan FOR succeeded" pop-up message, pat yourself on the back for the successfully generated execution plan! If you're playing in the SQL*Plus sphere, utilize the EXPLAIN PLAN FOR statement. Applying this before running your SQL query paves the path for better insights on its execution efficiency.

How to make sense of the execution plan

Let's admit it, SQL Developer's graphical interface is very handy to visualize what's happening under the hood. However, sometimes more granular information is required. This is where DBMS_XPLAN jumps in to save the day:

SELECT * FROM TABLE(DBMS_XPLAN.DISPLAY_CURSOR(null,null,'ALLSTATS LAST'));

Running this command not only illustrates the path chosen by the optimizer but also ushers various plan statistics post-query execution, a critical aspect of performance tuning.

Don't miss out on the Explain Plan window for insights into possible optimization.

Next-level optimizations

Ready, set, tune!

Adjust your settings in SQL Developer for a better insight, like adding the predicate or parallel execution information. Simply go to Tools -> Preferences -> Database -> Autotrace/Explain Plan.

Help the optimizer to help you

SQL hints can be used to suggest a specific index or join method to the optimizer. But beware, these hints may override the optimizer's decisions, so use sparingly!

Access all areas

Don't forget you need permissions to generate and view execution plans. Usually, this is granted via the SELECT privilege on the V$SQL_PLAN view.

Pro-level tactics

Plan comparisons for pros

Use DBMS_XPLAN.DISPLAY_CURSOR with two different SQL_IDs if you'd like to compare execution plans. It comes in handy, especially for performance regression analysis.

Monitor like a boss

For those long-executing SQL statements, Real-Time SQL Monitoring in SQL Developer is your new best friend. It provides real-time reports of SQL execution, including the execution plan.

Learning is earning

Dive deeper into the Oracle ecosystem by familiarizing yourself with the Oracle Optimizer blog. Understanding how the optimizer works can greatly aid in interpreting execution plans.

Troubleshoot like a pro

Explain Plan giving you headaches? Not showing up? Make sure to verify the OUTLINE environment and temporary tablespace configurations as they could be the culprits.