Oracle统计信息

Oracle数据库里的统计信息可以分为6种类型:

  • 表的统计信息
  • 索引的统计信息
  • 列的统计信息
  • 系统统计信息
  • 数据字典统计信息
  • 内部对象统计信息

图 1: Oracle统计信息


基于CBO成本计算的几个重要概念:

  1. Cardinality (集的势)

    • 含义:

      Cardinality可以理解为SQL扫描后所得到的集合

    • 计算公式:

        Cardinality=MAX(Cardinality Factor * Rowcount, 1)
    • Cardinality Factor计算

      1. "="查询

        Cardinality Factor = 1/NUM_DISTINCT

      2. ">", "<", ">=", "<="查询

        Cardinality Factor = (1/NUM_DISTINCT) + (1/NUM_ROWS)

      3. in查询

        Cardinality Factor = in_count/NUM_DISTINCT

      4. "<>"查询

        Cardinality Factor = (1 - (1/NUM_DISTINCT))

      5. not in查询

        Cardinality Factor = (1 - (1/NUM_DISTINCT)) ^ (not_in_count)

  2. Selectivity (选择度)

    • 含义:

      Selectivity可以理解为SQL中谓词过滤结果集和报错表记录数之间的比例 -

      [Oracle] oracle统计信息的更多相关文章

      1. oracle学习----统计信息

        1.收集统计信息的方式 for all columns size skewonly BEGIN  DBMS_STATS.GATHER_TABLE_STATS(ownname          => ...

      2. 验证Oracle收集统计信息参数granularity数据分析的力度

        最近在学习Oracle的统计信息这一块,收集统计信息的方法如下: DBMS_STATS.GATHER_TABLE_STATS ( ownname VARCHAR2, ---所有者名字 tabname ...

      3. ORACLE收集统计信息

        1.     理解什么是统计信息 优化器统计信息就是一个更加详细描述数据库和数据库对象的集合,这些统计信息被用于查询优化器,让其为每条SQL语句选择最佳的执行计划.优化器统计信息包括: ·       ...

      4. ORACLE 收集统计信息

        1.     理解什么是统计信息优化器统计信息就是一个更加详细描述数据库和数据库对象的集合,这些统计信息被用于查询优化器,让其为每条SQL语句选择最佳的执行计划.优化器统计信息包括: ·        ...

      5. Oracle自动统计信息的收集原理及实验

        [日期:2014-11-21]来源:Linux社区  作者:stevendbaguo[字体:大 中 小] 从Oracle Database 10g开始,Oracle在建库后就默认创建了一个名为GATH ...

      6. Oracle 搜集统计信息

        常用的统计信息收集脚本: 非分区表: BEGIN   DBMS_STATS.GATHER_TABLE_STATS(ownname          => 'SCOTT',             ...

      7. Oracle Statistic 统计信息 小结

        oraclestatisticstabledatabasesqldictionary   目录(?)[-] 直方图上列的信息说明 直方图类型说明   一.  Statistic 说明 Oracle 官 ...

      8. oracle的统计信息的查看与收集

        查看某个表的统计信息 SQL> alter session set NLS_DATE_FORMAT='YYYY-MM-DD HH24:MI:SS'; Session altered. SQL&g ...

      9. Oracle备份统计信息

        Oracle可以通过DBMS_STATS.GET_TABLE_STATS 收集表的统计信息,一般的收集方法如下: DBMS_STATS.GATHER_TABLE_STATS(OWNNAME => ...

      10. Oracle 11G统计信息自动收集及调整

        查询统计信息的收集所对应的task,以及当前状态 col CLIENT_NAME for a50col TASK_NAME for a20SELECT client_name, task_name, ...

      随机推荐

      1. Storm: 集群安装和配置

        前期准备:3台服务器: 192.168.8.94  192.168.8.95 192.168.8.96 去storm官网下载响应版本的软件包:http://storm.apache.org/downl ...

      2. MVC WebAPI 的基本使用

        1.什么是WebAPI Web API是网络应用程序接口.包含了广泛的功能,网络应用通过API接口,可以实现存储服务.消息服务.计算服务等能力,利用这些能力可以进行开发出强大功能的web应用. 它可以 ...

      3. viewpager 无网络的时候滑动异常

        不知道大家有没有遇到过这种情况,就是框架是viewpager+fragment的架构.然后呢,fragment里面是webview.一般情况下,当没有网的时候,webviwe会说什么找不到网页,然后很 ...

      4. ceph 存储系统

        http://w w w.c s d n 123.com/html/topnews201408/2/4702.htm

      5. 踩到Framework7 Photo Browser 的一个坑

        最近在做的项目用了Framework7前端框架,功能确实比较强大!但这两天遇到一个坑,希望我的这点收获能给遇到这个问题的朋友一点帮助. 在使用Photo Browser 的时候,图片下方想放一个“点赞 ...

      6. 19、AngularJs知识点总结 part-1

        1.AngularJs AngularJs是一款JavaScript开源库,由Google维护,用来协助单一页面应用程序: AngularJs的目标是通过MVC模式增强基于浏览器的应用,使开发和测试变 ...

      7. Python之进程、线程、协程

        进程和线程的目的 进程和线程目的是为了:提高执行效率 现代操作系统比如Mac OS X,UNIX,Linux,Windows等,都是支持“多任务”的操作系统. 什么叫“多任务“呢?简单地说,就是操作系 ...

      8. leetcode_day03

        https://leetcode-cn.com/problems/container-with-most-water/ 题目:盛水最多的容器 给定 n 个非负整数 a1,a2,...,an,每个数代表 ...

      9. springbootDay03 cookie和session 购物车技术

        一.会话技术 1. 什么是会话 在计算机术语中,会话指的是客户端和服务器交互通讯的过程.简单的理解,大家可以看成是两个普通的人在打电话.一次电话从通话开始到挂断,可以看成是会话. 会话的特征 会话能够 ...

      10. Hibernate 查询方法

        1.简单查询: public User select(User user) { User newUser; try { newUser = (User) session.get(User.class, ...