包含标签 statistics 的文章

12.2统计信息之管理统计信息

除了收集合适的统计信息,提供一个管理这些统计信息的综合架构同样重要。oracle提供了多个方法去做这些工作,包括恢复统计信息到以前的版本,提供从一个系统迁移统计信息到另外一个的选项,甚至你可以手动设置统计信息。这些选项在某些特定情形下都非常有用,但是仍然建议都通过DBMS_STATS包来收集统计信息。 恢复统计信息 当你用DBMS_STATS包来收集统计信息时,……

阅读全文

12.2统计信息之分区表

分区表上的统计信息要同时计算表级别和分区级别,11g以前新增一个分区或者修改少数分区的数据需要扫描整张表去刷新表的统计信息。如果跳过收集全局统计信息,那么优化器则会根据分区级别的统计信息去推断全局级别的统计信息。这种方法对于简单的表统计信息(例如行数)是准确的——通过聚合所有分区的行数,但是其他的统计信息就无法准确的推断。比如无法从每个分区独立的信息来准确推……

阅读全文

12.2统计信息之扩展统计信息

从11g开始引入了对列收集扩展统计信息,扩展统计信息包含了两种额外类型的统计信息:组合列和表达式统计信息。 组合列 对于真实数据来说,一个表中多个字段直接的数据通常具有关联性。比如在CUSTOMERS表中,CUST_STATE_PROVINCE字段会受到COUNTRY_ID字段值的影响,比如湖北只会出现在中国下面,如果只有基本的统计信息,优化器是没有办法知道这些……

阅读全文

12.2统计信息之直方图

介绍 很早之前的版本中,如何执行一个sql语句是由RBO(Rule Based Optimizer)决定的,根据一些设定好的规则来生成执行计划。 后来的版本中CBO(Cost Based Optimizer)被引入进来。CBO检查sql所有可能的执行计划然后选择其中cost最低的一个,cost其实就是反应了执行计划估算的资源消耗。cost越低,这个执行计划也就被认为效率越高。为了能让C……

阅读全文

查询v$lock慢

最近分析锁问题的时候发现查询v$lock视图很慢,查询v$lock主要就是查询下面这些内存结构表 Fixed tables :- ----------------- X$KSUSE X$KDNSSF X$KSQEQ X$KTADM X$KTATRFIL X$KTATRFSL X$KTATL X$KTSTUSC X$KTSTUSS X$KTSTUSG X$KTCXB X$KSQRS X$KSLWT X$KSLED 通常对于我们一般的表来说,如果表上没有相关的统计信息,那么CBO优化器会自动进行动态采样,而对于fixed tables却不会做这些操作,所以必须要收集它们的统计信息 MOS上这篇文章Query Against v$lock Run from OEM Performs Slowly (Doc ID 1328789.1)……

阅读全文