当前位置:  数据库>oracle

关于Oracle 11g动态采样

    来源: 互联网  发布时间:2017-05-08

    本文导语: 最近遇到一个动态采样带来的性能问题,让我着实有点不可理解,通过查看文档以及做实验,现总结如下:我们先来看看Online Document关于动态采用的解释Oracle 10GR2 documentation:This dynamic sampling feature is controlled by the OPTIMIZER_DYNAMIC_SAMPLING pa...

最近遇到一个动态采样带来的性能问题,让我着实有点不可理解,通过查看文档以及做实验,现总结如下:
我们先来看看Online Document关于动态采用的解释
Oracle 10GR2 documentation:
This dynamic sampling feature is controlled by the OPTIMIZER_DYNAMIC_SAMPLING parameter.
For dynamic sampling to automatically gather the necessary statistics, this parameter should be set to a value of 2 or higher.
The default value is 2. See "Dynamic Sampling Levels" for information about the sampling levels that can be set.




Oracle 11GR2 documentation:
When the Optimizer Uses Dynamic Sampling
During compilation, the optimizer decides whether to use dynamic sampling based on a number of factors,
including whether the statements use parallel processing or serial processing.
For parallel statements, the optimizer automatically decides whether to use dynamic sampling and which level to use.
The decision depends on the size of the tables and the complexity of the predicates. The optimizer expects parallel statements to be
resource-intensive,so the additional overhead at compile time is worth it to ensure the best plan. The database ignores the OPTIMIZER_DYNAMIC_SAMPLING setting
unless set to a nondefault value, in which case the value is honored.
For serially processed SQL statements, the dynamic sampling level depends on the value of the OPTIMIZER_DYNAMIC_SAMPLING parameter and
is not triggered automatically by the optimizer. Serial statements are typically short-running, so that any overhead at compile time
could have a huge impact on their performance.
注:大家注意到没有11.2.0.*中如果语句是并行执行,那么是否采用dynamic sampling以及level将以表的大小,sql中table join的复杂度来决定,也就是又CBO来决定采样的level值。
CBO将忽略OPTIMIZER_DYNAMIC_SAMPLING的默认值。对于Oracle的各种特性,如果有自动的功能,多多少少都不太稳定,总会出问题的。当然,对于串行执行的语句依旧动态采样的level 将仍然有OPTIMIZER_DYNAMIC_SAMPLING决定,其实大部分时候level 2已经完全足够。











下面来看看11.2.0.3中动态采用的情况

  • SQL> create table leo(id number,  
  •   2  leo_date date,  
  •   3  value varchar2(20),  
  •   4  name varchar2(30)) tablespace users;  
  •   
  • Table created.  
  •   
  • 用随机数生成100w数据,插入表中。  

  •     
     
     

    您可能感兴趣的文章:

  • 用Oracle动态性能视图采集查询调优数
  • Oracle动态生成查询交叉表
  • 关键字: oracle,存储过程,数据库,查询,动态sql包,数组,参传,jdbc 1
  • Oracle 9i数据库中动态重配置深入分析
  • 在Oracle PL/SQL中游标声明中表名动态变化的方法
  • Oracle组件实现动态Web数据库
  • oracle生成动态前缀且自增号码的函数分享
  • Oracle过程中执行动态SQL或DDL语句
  • 如何用不算很熟练的jsp,oracle,javascript,html,css等建设动态网站,要网页打开速度快、易于日常维护更新?
  • 基于Oracle的高性能动态SQL程序开发
  • Oracle静态注册与动态注册详解
  • Oracle动态交叉表生成
  • Oracle实现动态SQL的拼装要领
  • oracle中动态SQL使用详细介绍
  • oracle 动态AdvStringGrid完美示例 (AdvStringGrid使用技巧/Cells)
  • Oracle9i 动态SGA,PGA特性探索
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • oracle 11g最新版官方下载地址
  • Oracle EBS R12 支持 Oracle Database 11g
  • Oracle 10g和Oracle 11g网格技术介绍
  • Linux版本的Oracle 11g将首先被发布
  • 关于Linux下oracle是10g?还是11g?
  • Oracle 11g 相关工具netca,dbca乱码之解决
  • fedora10安装oracle11g提示物理内存不足怎么办?
  • Oracle 11g解锁scott
  • Oracle 11g R2 数据库将在9月发布
  • Oracle内存数据库11g和高速缓存11g上市
  • 有人在fedora 10下安装 oracle database 11g,没有呀?提供个安装步骤
  • 在ubuntu10.04上安装oracle11g失败
  • 关于Oracle 11g 闪回的一个小问题
  • Oracle11g备份和恢复功能的提高
  • linux redhat5.6安装oracle11g在自动创建实例时停住不动,有图
  • Oracle针对Eclipse 11g发布开发包
  • centos5.4安装oracle11g的问题
  • Oracle 11g 数据库 Alert日志的新发展
  • Redhat 6 安装 oracle 11g2的问题
  • 基于Linux环境的Oracle 11g数据库正式推出
  • Oracle 11G密码180天过期后的修改方法
  • Oracle 12c发布简单介绍及官方下载地址
  • 在linux下安装oracle,如何设置让oracle自动启动!也就是让oracle那个服务自动启动,不是手动的
  • Oracle 数据库(oracle Database)Select 多表关联查询方式
  • 请问su oracle 和su - oracle有什么不同?
  • Oracle数据库(Oracle Database)体系结构及基本组成介绍
  • 虚拟机装Oracle R12与Oracle10g
  • 如何设置让Oracle SQL Developer显示的时间包含时分秒
  • Oracle 数据库开发工具 Oracle SQL Developer
  • oracle中如何把表中具有相同值列的多行数据合并成一行
  • SCO unix下安装oracle,但没有光盘,请大家推荐一个oracle下载站点(unix版本的)。谢谢!!!!


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,