Chinaunix首页 | 论坛 | 博客
  • 博客访问: 3672112
  • 博文数量: 715
  • 博客积分: 1860
  • 博客等级: 上尉
  • 技术积分: 7745
  • 用 户 组: 普通用户
  • 注册时间: 2008-04-07 08:51
个人简介

偶尔有空上来看看

文章分类

全部博文(715)

文章存档

2023年(75)

2022年(134)

2021年(238)

2020年(115)

2019年(11)

2018年(9)

2017年(9)

2016年(17)

2015年(7)

2014年(4)

2013年(1)

2012年(11)

2011年(27)

2010年(35)

2009年(11)

2008年(11)

分类: Oracle

2021-08-05 23:55:04


从 Oracle Database 12c Release 1 (12.1)开始,如果动态统计信息被打开的话,那么优化器会自动的去决定:

  1. 是否动态统计信息是有用的
  2. 哪个采样级别被使用

在 12c 上自动动态统计信息默认是启用的,OPTIMIZER_DYNAMIC_SAMPLING 默认值为2。当满足下面任一条件时自动动态统计信息将有效:

  • 初始化参数 OPTIMIZER_DYNAMIC_SAMPLING 设置为默认值
    或者
    OPTIMIZER_DYNAMIC_SAMPLING 设置成11(如:默认值和11以外的值将关闭 ADS)
  • 使用 SQL hint 启用动态统计信息
  • 查询启用了并行
  • 查询之前执行过,并且它的历史信息存在(来自 cursor cache, Automatic Workload Repository,或者 SQL Management Base)

在使用 Adaptive Query Optimization 技术时(如:Adaptive Plans,Statistics Feedback, SQL Plan directives 等等),优化器会基于算法决定是否使用动态统计信息。


在使用 Adaptive Query Optimization 时,触发 Automatic Dynamic Sampling

在下面的条件下使用 Adaptive Query Optimization 将触发自动动态采样:

  1. 当优化器发现 cardinality estimate 不准确时,ADS 将被触发(不管 SQL 语句是否是被重复执行的)
  2. SQL 语句使用到了 adaptive plans 时,ADS 也会被触发
  3. SQL 语句用到了自动重新优化(作为 adaptive statistics 一部分),ADS 也会被触发



阅读(951) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~