When creating an index, Oracle versions 10g and above automatically compute optimizer statistics. And even before that, 9i had a
COMPUTE STATISTICS clause to accomplish the same thing. Not only does it save the time and effort of running
DBMS_STATS, but it also saves the disk I/O involved in such an operation, since all rows are available in the course of index creation.
Now why can’t this happen on a
CREATE TABLE AS SELECT command? Most if not all of the statistics gathering steps (high/low value, number of distinct values, and even possibly histograms) can be gathered over the course of a simple table read, which is happening anyway.
Oracle 12.1 maybe?