--概要

主要总结一下Oracle是如何收集统计信息的是如何选择的,有一些好的Ref可以看看

--基本概念

首先要明确系统的自动收集机制 如果insert update delete truncate发生的数据量变化大于总记录的10%系统就会自动重新统计信息.如果统计信息为null时系统蚕食OPTOMIZER_DYNAMIC_SAMPLING 能够控制如何进行收集. Hint是 /*+ dynamic_sampling (table integer) */ 详见TOP第五章1.3节

以下为收集后用来存储统计信息的视图:

user_tab_statistics --统计之后用来显示表的统计信息 3.1.2

user_tables --查看schames下所有表的统计信息

execdbms_stats.gather_schema_stats(ownname=>user, estimate_percent=>0.5);SELECTtable_name, sample_size, num_rows,round(sample_size/num_rows*100,1)AS"%"FROMuser_tablesWHEREnum_rows>0ORDERBYtable_name;

TABLE_NAME SAMPLE_SIZE NUM_ROWS%------------------------------ ----------- -------- ----------BIG_TABLE12435######5COLOCATED5087984845.2T10011001100

user_tab_col_statistics --统计之后用来显示列的统计信息 3.1.3

user_tab_histograms --统计之后用来显示直方图的统计信息 3.1.4

user_ind_statistics --统计之后用来显示索引的统计信息 3.1.5

user_indexes

Oracle的CBO的执行计划选择是基于柱状图(Histogram)的,柱状图用于记录表中的列的分布情况,有了柱状图CBO就可以选择最优的执行计划,否则就需要根据索引的选择性(selectivity)来判断是否使用该索引. 以下是建立测试环境

Oracle收集cbo统计信息,Oracle CBO 统计信息的收集与执行计划的选择相关推荐

  1. 将oracle优化器改为CBO,【DB.Oracle】Oracle 优化器 (RBO, CBO)

    Oracle优化器 Oracle数据库中的优化器又叫查询优化器(Query Optimizer).它是SQL分析和执行的优化工具,它负责生成.制定SQL的执行计划.Oracle的优化器有两种,基于规则 ...

  2. oracle cbo rbo参数,Oracle优化器(RBO与CBO)

    在Oracle中80%的性能问题是由SQL语句引起的,而在SQL进行硬解析时会使用Oracle优化器.优化器(Optimizer)是Oracle中内置的一个核心子系统,主要负责成生SQL执行计划.目前 ...

  3. sql 触发器_一键生成某个sql的html--记录执行计划、统计信息、触发器等

    概述 当你获得某个sql的sql_id时,怎么去一键获得这个sql的一些信息呢,例如列的情况.执行计划等等..脚本有点长,建议大家用电脑来看.. 下面用一个简单测试来演示下,附脚本领取方式. 1.获取 ...

  4. Oracle执行计划稳固

    文章目录 0.参考资料 1.查看执行计划&指标解读 1.1.查看执行计划 1.1.1.explain plan命令 1.1.2.DBMS_XPLAN包 1.1.3.DISPLAY_SQL_PL ...

  5. 崔华 oracle简历,Oracle ACE崔华解析Oracle数据库优化器

    [IT168专稿]第三届Oracle技术嘉年华再度来袭!作为国内顶尖级别的Oracle数据库技术盛会,现场邀请到Jonathan Lewis,Tim Gorman等Oracle数据库领域国际级专家,特 ...

  6. Oracle执行计划显示

    生成和显示SQL语句的执行计划,是大多数DBA.SQL开发人员以及性能优化专家经常做的工作,因为执行计划能够提供SQL语句性能相关的信息.执行计划解释了SQL语句执行的详细过程,这个过程记录了一系列的 ...

  7. 分析Oracle有时会用索引来查找数据的原因-oracle执行计划

    http://www.webjx.com/database/oracle-140.html 问:为什么Oracle有时会用索引来查找数据? 答:在你运用SQL语言,向数据库发布一条查询语句时,Orac ...

  8. ORACLE 执行计划2

    SQL>set timing on                                   --显示Elapsed执行总时间.区别于set time on 方式一: SQL>s ...

  9. oracle 重设基线,Oracle SQL执行计划基线总结(SQL Plan Baseline)

    一.基础概念 Oracle 11g开始,提供了一种新的固定执行计划的方法,即SQL plan baseline,中文名SQL执行计划基线(简称基线),可以认为是OUTLINE(大纲)或者SQL PRO ...

最新文章

  1. linux vnc的小黑点和鼠标不同步_vnc使用教程,在Linux中vnc使用教程的4个步骤
  2. MySQL数据库:drop、truncate、delete的区别
  3. pipe 半双工_pipe 半双工_Linux管道PIPE的原理和应用
  4. rpm mysql java 驱动_Linux下安装MySQL(rpm方式)
  5. ip_vs实现分析(2)
  6. 可是来个拦路虎的scutzh
  7. 关于MongoDB的几个问题
  8. 【2019.09.01】2019南京网络赛
  9. Windows2003系统无法运行CS游戏的解决方案
  10. r语言插补法_R语言用多重插补法估算相对风险
  11. 【Android】OKHTTP使用
  12. Java如何连接数据库
  13. CorelDRAW X4 SP2 简体中文正式版精简增强版
  14. 【转】姚班学霸陈立杰
  15. ETC技术之DSRC协议笔记
  16. Android OS历史版本
  17. java微博图床小工具
  18. java 两集合根据某字段 过滤掉相同的数据 , 集合整合数据
  19. Python学习 读书笔记(1)
  20. GlobalMapper20如何生成经纬网格、标准图幅(1:100万标准分幅)

热门文章

  1. 微信小程序引入WeUI组件库并使用组件
  2. TIFF文件中 TIFFTAG_PHOTOSHOP的解析
  3. 2021到2022跨年还有多少天?可用手机便签设置跨年倒数
  4. SpringBoot 工程打包并运行
  5. 服务了可口可乐、海底捞、某头部商业银行,我有这些体会
  6. 景观效果图制作过程中选择适合的角度需要遵循的原则
  7. 正则表达式验证手机号码、身份证号码、邮箱、统一社会信用代码/营业执照号
  8. python正则表达式删除指定符号及其中的内容
  9. 手把手教你写一个日期计算器(C++)
  10. 步进电机编码器闭环程序,西门子200PLC和威纶通触摸屏实控制步进电机