Statistic 对oracle 是非常重要的。 它会收集数据库中对象的详细信息,并存储在相应的数据字典里。 根据这些统计信息, optimizer 可以对每个sql 去选择最好的执行计划。所以我们每天应该设定一个计划来定时统计分析相关信息。具体计划如下:
create or replace procedure P_ANALYZE_TABLE is cursor loop_tmp is SELECT 'ANALYZE TABLE '||TABLE_NAME||' COMPUTE STATISTICS' dynamicsql FROM USER_TABLES; begin for tmp in loop_tmp loop execute immediate tmp.dynamicsql; end loop; end P_ANALYZE_TABLE;通过以上这段代码就可以对用户下的所有表进行统计分析,提高效率。