Oracle数据库中的统计信息是这样一组数据:它存储在数据字典中,且从多个维度描述了Oracle数据库里对象的详细信息。 CBO会利用这些统计信息来计算目标SQL各种可能的,不同的执行路径的成本,从中选择一条成本最小的执行路径来作为目标SQL的执行计划。
统计信息分为以下六种:
表的统计信息
索引的统计信息
列的统计信息
系统统计信息
数据字典统计信息
内部对象统计信息:用于描述Oracle数据库里的一些内部表(如X$系列表)的详细信息。

收集统计信息

通常有两种方法
  • 使用Analyze命令
  • 使用DBMS_STATS包
    表、索引、列、数据字典 的统计信息 这两种方法都可收集。 系统统计信息和系统内部对象统计信息只能使用DBMS_STATS包

Analyze命令用法

  1. 以计算模式: analyze table abc compute statistics for table; 会扫描目标对象的所有数据,所以统计结果和实际结果相匹配。
  2. 以估算模式: analyze table abc estimate statistics sample 15 percent for table; 估算模式,估算结果和实际结果不一定完全匹配

DBMS_STATS包用法

  • GATHER_TABLE_STATS 用于收集目标表、目标表列和目标表上的索引统计信息
  • GATHER_INDEX_STATS 用于收集指定索引的统计信息
  • GATHER_SCHEMA_STATS 用于收集指定schema下所有对象的统计信息
  • GATHER_DATABASE_STATS 用于收集全库所有对象的统计信息

  1. 估算模式 exec dbms_stats.gather_table_stats(ownname=>'scott' , tabname=>'T2' , estimate_percent=>15 , method_opt=>'FOR TABLE' , cascade=>false);

  2. 计算模式 exec dbms_stats.gather_table_stats(ownname=>'scott' , tabname=>'T2' , estimate_percent=>100, method_opt=>'FOR TABLE' , cascade=>false); 或者 exec dbms_stats.gather_table_stats(ownname=>'scott' , tabname=>'T2' , estimate_percent=>NULL, method_opt=>'FOR TABLE' , cascade=>false);

Analyze和DBMS_STATS区别

  • Analyze命令不能正确地收集分区表的统计信息,而DBMS_STATS包却可以。
  • Analyze命令不能并行收集统计信息,而DBMS_STATS包却可以。
    DBMS_STATS包的并行收集是通过手工指定输入参数 DEGREE 来实现的,如对表 T1 并行收集统计信息,同时指定并行度为4:exec dbms_stats.gather_table_stats(ownname=>'scott' , tabname=>'T1' , estimate_percent=>NULL, method_opt=>'FOR TABLE' , cascade=>true , degree=>4);
  • DBMS_STATS包的缺陷是只能收集CBO相关统计信息,不能收集CBO无关的一些额外信息,Analyze却可以。

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

  1. 有关Oracle统计信息的知识点[z]

    https://www.cnblogs.com/sunmengbbm/p/5775211.html 一.什么是统计信息 统计信息主要是描述数据库中表,索引的大小,规模,数据分布状况等的一类信息.例如, ...

  2. 有关Oracle统计信息的知识点

    一.什么是统计信息 统计信息主要是描述数据库中表,索引的大小,规模,数据分布状况等的一类信息.例如,表的行数,块数,平均每行的大小,索引的leaf blocks,索引字段的行数,不同值的大小等,都属于 ...

  3. [Oracle] oracle统计信息

    Oracle统计信息 Oracle数据库里的统计信息可以分为6种类型: 表的统计信息 索引的统计信息 列的统计信息 系统统计信息 数据字典统计信息 内部对象统计信息 图 1: Oracle统计信息 基 ...

  4. oracle统计信息

    手工刷ORACLE统计信息  select count(1) from LOG_TRX_DETAIL;  select * from user_tab_statistics where table_n ...

  5. 收集oracle统计信息

    优化器统计范围: 表统计: --行数,块数,行平均长度:all_tables:NUM_ROWS,BLOCKS,AVG_ROW_LEN:列统计: --列中唯一值的数量(NDV),NULL值的数量,数据分 ...

  6. Oracle 统计信息收集

    官网网址参考: https://docs.oracle.com/cd/B19306_01/appdev.102/b14258/d_stats.htm#CIHBIEII https://docs.ora ...

  7. 测试Oracle统计信息的导出导入

    背景:有时我们会希望可以对Oracle的统计信息整体进行导出导入.比如在数据库迁移前后,希望统计信息保持不变;又比如想对统计信息重新进行收集,但是担心重新收集的结果反而引发性能问题,想先保存当前的统计 ...

  8. Oracle 统计信息介绍

      统计信息自动执行需要以下条件满足: dba_autotask_task 字段status值ENABLED dba_autotask_client 字段status值ENABLED dba_auto ...

  9. 【练习】ORACLE统计信息--直方图

    ①创建表tSQL> create table t as select * from dba_objects; Table created. --收集直方图 SQL> exec dbms_s ...

随机推荐

  1. vue2 使用 element-ui

    看了  http://element.eleme.io/#/zh-CN/component/installation     一些组件和样式够用了 , 试了下 element-ui ,配合到vue中 ...

  2. 01_Netty简述

    [Netty的NIO模型与常见的NIO模型对比] [原始的BIO模型] ServerSocket serverSocket = Socket clientSocket = serverSocket.a ...

  3. 用Jmeter进行接口测试及乱码问题

    web接口测试工具: 手工测试的话可以用postman ,自动化测试多是用到 Jmeter(开源).soupUI(开源&商业版). 下面将对前一篇Postman做接口测试中的接口用Jmeter ...

  4. vue学习(一)、Vue.js简介

    Vue.js 五天 汤小洋一. Vue.js简介1. Vue.js是什么Vue.js也称为Vue,读音/vju:/,类似view,错误读音v-u-e 版本:v1.0 v2.0 是一个构建用户界面的框架 ...

  5. ActiveMQ 用户名密码设置

    用户名密码信息保存在conf/jetty-realm.properties文件中 按顺序分别是:用户名.密码.角色名 另:ActiveMQ使用的是jetty服务器, 可以通过设置conf/jetty. ...

  6. kettle使用命令行传入数据库链接参数(ip、数据库、端口、用户、密码)执行job时子转换失败。

    使用cmd 传参数执行 kettle job 遇到错误: 错误原因,无法找到文件.... 原来使用,通过目录指定转换,好处是:当以文件资源库保存时,可以直接将文件夹复制走,直接运行就可以,不需要单独针 ...

  7. 关于v$rowcache

    关于v$rowcache column parameter format a21column pct_succ_gets format 999.9column updates format 999,9 ...

  8. linux 下安装ant

    1.下载 下载地址:http://ant.apache.org/bindownload.cgi 2.解压     cd /home/work/ant/ tar -zxvf apache-ant-1.8 ...

  9. 随手记C#资料

    1.where T: new()where后的称为泛型约束,这里约束泛型参数T必须具有无参的构造函数 2.判断路径是本地路径还是网址 private static bool IsLocalPath(s ...

  10. haproxy开启日志功能

    haproxy在默认情况不会记录日志,除了在haproxy.conf中的global段指定日志的输出外,还需要配置系统日志的配置文件.下面以centos6.4为例,haproxy使用系统自带的rpm报 ...