Oracle统计信息

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

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

图 1: Oracle统计信息


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

  1. Cardinality (集的势)

    • 含义:

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

    • 计算公式:

      1. 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. keil调试问题记录

        1.错误类型:L6218E:Underfined symbol &&&&&&&&& (referred form &&a ...

      2. CentOS 使用 LAMP 环境开启 SSL 搭建 WordPress

        环境阿里云新装CentOS 7.4, 使用yum(非编译安装)搭建LAMP, CA证书为阿里云免费提供的, WordPress为官网下载 安装 LAMP 并开启 HTTPS 1, 关闭防火墙 # sy ...

      3. 从Wireshark看TCP连接的建立与关闭

        TCP是一种面向连接.可靠的协议.TCP连接的建立与断开,都是需要经过通信双方的协商.用一句话概括就是:三次握手say hello(建立连接):四次握手say goodbye(断开连接).要了解TCP ...

      4. Android 本应用数据清除管理器DataCleanManager

        1.整体分析 1.1.源代码先给出了,可以直接Copy. /** * 本应用数据清除管理器 */ public class DataCleanManager { /** * * 清除本应用内部缓存(/ ...

      5. runloop的mode作用是什么?

        用来控制一些特殊操作只能在指定模式下运行,一般可以通过指定操作的运行mode来控制执行时机,以提高用户体验 系统默认注册了5个Mode kCFRunLoopDefaultMode:App的默认Mode ...

      6. Windows 2003 IIS服务器配置环境(放.net开发的网站)

        配置IIS 安装.Net Framework3.5 安装SQL数据库 IIS的配置与安装步骤: 开始->管理工具->管理您的服务器->添加角色->(配置您的服务器向导)下一步- ...

      7. 玩转Linux之内存管理-free

        玩转Linux之内存管理-free free命令可以显示Linux系统中空闲的.已用的物理内存及swap内存,及被内核使用的buffer.在Linux系统监控的工具中,free命令是最经常使用的命令之 ...

      8. Java基本-2对象与包

        1.对象:通俗的来讲,就是一个东西,比如汽车是一个对象,人是一个对象,狗是一个对象. 2.类:她描述的是对象的行为或者状态,比如对象是汽车,那么嘞可以分为小汽车类,大货车类,客车类等. 在类中可以包含 ...

      9. 【java并发编程实战】第二章:对象的共享

        1.重要的属性 可见性,不变性,原子性 1.1可见性 当一个线程修改某个对象状态的时候,我们希望其他线程也能看到发生后的变化. 在没有同步的情况下,编译器和处理器会对代码的执行顺序进行重排.以提高效率 ...

      10. 剑指offer-从尾到头打印链表03

        class Solution: # 返回从尾部到头部的列表值序列,例如[1,2,3] def printListFromTailToHead(self, listNode): # write code ...