-- oracle 8.1.5 之前 
analyze 收集统计信息
analyze table tt1 estimate statistics  sample 15 percent for   table  -估算模式收集表统计信息
analyze table tt1 compute statistics  for table --- 计算模式收集表统计信息
analyze table tt1 comupte statistics for column object_id  --对指定列收集统计信息
analyze table tt1 comupte statistics for table for column object_id ----对指定列和表收集统计信息
analyze index idx_tt1 compute statistics --对制定索引收集统计信息
analyze table tt1 delete statistics  -- 对制定表删除所有统计信息
analyze table tt1 compute statistics  --对指定表收集所有统计信息

---dbms_stats包收集统计信息
exec  dbms_stats.gather_table_stats(ownname => 'test',tabname=> 'tt1',estimate_percent => 15,method_opt => 'for  table',cascade => false); ---估算模式对制定表上收集统计信息    

exec  dbms_stats.gather_table_stats(ownname => 'test',tabname=> 'tt1',estimate_percent => 100,method_opt => 'for  table',cascade => false); ---计算方式对制定表上收集统计信息                          

 exec  dbms_stats.gather_table_stats(ownname => 'test',tabname => 'tt1',estimate_percent => 100,method_opt => 'for columns size 1 object_name object_id',cascade => false); ---计算方式对制定表列上收集统计信息

exec   dbms_stats.gather_index_stats(ownname => 'test',indname => 'idx_tt1',estimate_percent => 100);
---制定模式下索引收集统计

 exec  dbms_stats.delete_table_stats(ownname => 'test',tabname => 'tt1'); --删除表统计信息
---一次性收集表统计信息
exec   dbms_stats.gather_table_stats(ownname => 'test',tabname => 'tt1',estimate_percent =>  100,cascade => true);


anaylze 和dbms_stats 区别
1. analyze 不能正确的地收集分区表的统计信息,而dbms_stats 包却可以
2 . analyze 命令不能并行收集统计信息,而dbms_stats 包却可以
exec     dbms_stats.gather_table_stats(ownname => 'test',tabname => 'tt1',estimate_percent =>  100,cascade => true,degree => 3);





            





10-18 01:14