oracle数据统计查询(oracle基于表的统计信息)
oracle数据统计查询(oracle基于表的统计信息)修改后就可以测试一下速度的改进啦。建议定期运行上面的语句,尤其是数据经过大量更新。当然,也可以通过dbms_stats来分析表和索引。后面会分享更多DBA方面的内容,感兴趣的朋友可以关注下!!
概述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;
通过在analyze table命令中指定了for table或者不指定任何参数的时候 oracle数据库会给我们统计基于表的统计信息,如果我们想让CBO利用合理利用数据的统计信息的时候就可以用这个方式了。
生成分析某个用户的所有表set pagesize 0 spool /home/oracle/analyze_tables.sql; select 'analyze table '||owner||'.'||table_name||' compute statistics;' from dba_tables where owner='XXXXX'; spool off
生成分析某个用户的所有索引spool /home/oracle/analyze_indexes.sql; select 'analyze index '||owner||'.'||index_name||' compute statistics;' from dba_indexes where owner='XXXX'; spool off @/home/oracle/analyze_tables.sql @/home/oracle/analyze_indexes.sql
上面的语句生成了两个sql文件,分别分析NWPP用户全部的表和索引。如果需要按照百分比来分析表,可以修改一下脚本。通过上面的步骤,我们就完成了对表和索引的分析,
修改后就可以测试一下速度的改进啦。建议定期运行上面的语句,尤其是数据经过大量更新。当然,也可以通过dbms_stats来分析表和索引。
后面会分享更多DBA方面的内容,感兴趣的朋友可以关注下!!