GATHER_PLAN_STATISTICS hint doesn't gather optimizer statistics as in those gather by dbms_stats.gather_table_stats. The GATHER_PLAN_STATISTICS hint captures execution statistics. For example, the number of rows actually returned by each operation in the execution plan.
in order to gain the actual statistics from a query it is necessary to include the hint /*+ gather_plan_statistics */ which will generate a set of columns not normally identified on the normal explain plan.
It’s very easy to see where the optimizer is having problems by comparing the A-Rows column (actual rows) with the E-Rows column (estimated rows).