分析表
analyze table tablename compute statistics;
分析索引
analyze index indexname compute statistics;
该语句生成的统计信息会更新user_tables这个视图的统计信息,分析的结果被Oracle用于基于成本的优化生成更好的查询计划
对于使用CBO(Cost-Base Optimization)很有好处,可以使用更可靠的table信息,从而执行计划也可以更准确一些,在10g会自动analyze,之前的版本需要手动定期
analyze table 一般可以指定分析: 表,所有字段,所有索引字段,所有索引。 若不指定则全部都分析。
SQL> analyze table my_table compute statistics; SQL> analyze table my_table compute statistics for table for all indexes for all columns; SQL> analyze table my_table compute statistics for table for all indexes for all indexed columns;其中:SQL> analyze table my_table compute statistics; 等价于:SQL> analyze table my_table compute statistics for table for all indexes for all columns;
sample:
analyze table t1 compute statistics for table;
analyze table t2 compute statistics for all columns;
analyze table t3 compute statistics for all indexed columns;analyze table t5 compute statistics for all indexes; analyze table t4 compute statistics; (不指定)
另外,可以删除分析数据:
SQL> analyze table my_table delete statistics;SQL> analyze table my_table delete statistics for table for all indexes for all indexed columns;