What is the difference between a SQL Plan and an Explain Plan?
SQL Plan is the plan stored in the SQL cache (shared pool) and is the one actually used in the execution of a statement. Explain plan is what the EXPLAIN PLAN command tells you Oracle is going to do. The two can differ based on the optimizer settings of the session executing the SQL and perhaps on the values of bind variables provided at run time. So generally you rely on what Oracle says it DID do (SQL Plan) rather than what EXPLAIN PLAN tells you it MIGHT do.