判断统计信息是否正确
dba_tables 统计了表的信息(例如行数)
dba_tab_col_statistics 统计了表列的信息(例如列的不重复行数量NUM_DISTINCT)
dba_indexes 统计了索引的信息(例如键值列不重复行的数量DISTINCT_KEYS)
收集整库统计信息
exec DBMS_STATS.GATHER_DATABASE_STATS();
exec DBMS_STATS.GATHER_DATABASE_STATS(degree=>4,cascade=>TRUE);
收集用户统计信息
exec DBMS_STATS.GATHER_SCHEMA_STATS ('SH', degree=>4, cascade=>TRUE);
收集表统计信息
exec dbms_stats.gather_table_stats(ownname => 'HR',tabname => 'EMPLOYEES',estimate_percent => 10,method_opt=> 'for all columns size auto') ;
收集索引统计信息
exec dbms_stats.gather_index_stats(ownname => 'HR',indname => 'IDX_EMPLOYEES_ID',estimate_ percent => '10',degree => '4') ;
收集表和索引统计信息
exec dbms_stats.gather_table_stats(ownname => 'HR',tabname => 'EMPLOYEES',estimate_percent => 10,method_opt=> 'for all indexed columns',cascade=>TRUE) ;
删除统计信息
exec dbms_stats.DELETE_TABLE_STATS('sh','sales'); -- 删除 Table 统计
exec DBMS_STATS.DELETE_SCHEMA_STATS('SH'); -- 删除 Schema 统计
exec DBMS_STATS.DELETE_DATABASE_STATS(); -- 删除 Database 统计