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. Diycode开源项目 SitesListFragment分析

        1.效果预览 1.1.网站列表实际界面 1.2.注意这个界面没有继承SimpleRefreshRecycleFragment 前面的话题和新闻继承了SimpleRefreshRecyclerFragm ...

      2. 关于 JS 模块化的最佳实践总结

        模块化开发是 JS 项目开发中的必备技能,它如同面向对象.设计模式一样,可以兼顾提升软件项目的可维护性和开发效率. 模块之间通常以全局对象维系通讯.在小游戏中,GameGlobal 是全局对象.在小程 ...

      3. Servlet过滤器---编码转换过滤器

        该实例用于将请求与相应的编码设置为当前网站的默认编码 java类: import java.io.IOException; import javax.servlet.Filter; import ja ...

      4. poj3348 Cows 凸包 叉积求多边形面积

        graham扫描法,参考yyb #include <algorithm> #include <iostream> #include <cstdio> #includ ...

      5. 有关ViewPager的使用及解决Android下ViewPager和PagerAdapter中调用notifyDataSetChanged失效的问题

        ViewPager是android-support-v4.jar包中的一个系统控件,继承自ViewGroup,专门用以实现左右滑动切换View的效果,使用时需要首先在Project->prope ...

      6. 剑指Offer - 九度1519 - 合并两个排序的链表

        剑指Offer - 九度1519 - 合并两个排序的链表2013-11-30 22:04 题目描述: 输入两个单调递增的链表,输出两个链表合成后的链表,当然我们需要合成后的链表满足单调不减规则.(hi ...

      7. PC端网站转换为webApp工具

        百度开发云site App:http://siteapp.baidu.com/

      8. sql的nvl()函数

        一NVL函数是一个空值转换函数 NVL(表达式1,表达式2) 如果表达式1为空值,NVL返回值为表达式2的值,否则返回表达式1的值. 该函数的目的是把一个空值(null)转换成一个实际的值.其表达式的 ...

      9. Java SE 5.0 - SE 8 的功能增强

        Table of Contents 前言 Java 5.0 Generics Enhanced for Loop Autoboxing Typesafe Enums Varargs Static Im ...

      10. python基础实践(三)

        -*-列表是新手可直接使用的最强大的python功能之一,它融合了众多重要的编程概念.-*- # -*- coding:utf-8 -*-# Author:sweeping-monkQuestion_ ...