cardinality feedback特性导致的执行计划改变-凯发app官方网站

凯发app官方网站-凯发k8官网下载客户端中心 | | 凯发app官方网站-凯发k8官网下载客户端中心
  • 博客访问: 1156355
  • 博文数量: 166
  • 博客积分: 0
  • 博客等级: 民兵
  • 技术积分: 3760
  • 用 户 组: 普通用户
  • 注册时间: 2011-03-30 13:00
个人简介

about me:oracle ace pro,optimistic,passionate and harmonious. focus on oracle,mysql and other database programming,peformance tuning,db design, j2ee,linux/aix,architecture tech,etc

文章分类

全部博文(166)

文章存档

2024年(21)

2023年(28)

2022年(43)

2020年(62)

2014年(3)

2013年(9)

相关博文
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·
  • ·

分类: oracle

2023-05-09 15:32:41

背景描述:11g开始的cardinality feedback基数反馈(12c叫statistics feedback)属于cbo优化器自动优化特性,由于表可能缺少统计信息、或收集的统计信息不准确或条件复杂cbo无法估算准确的返回行数导致走错执行计划,因此,引入cardinality feedback功能,{banned}中国第一次执行会记录条件实际返回的行数,然后与优化器估算的返回行数对比,如果差别很大,后续执行会用{banned}中国第一次实际返回的行数会修正执行计划。使用了cardinality feedback特性的,可以在执行计划notes部分看到”  cardinality feedback used for this statement”


问题描述:cardinality feedback特性会重新解析,导致产生子游标,可能会导致执行计划改变,而且bug较多,经常表现为:{banned}中国第一次执行很快,之后执行很慢。具体如下所示:

 

目前可以从xx库里看出cardinality feedback没有关闭:

name                                     value

---------------------------------------- ----------------------------------------

_optimizer_use_feedback                  true

 

可以从v$sql_shared_cursor里看到,有很多cardinality feedback原因导致的新子游标:

共2435条因cardinality feedback导致的新子游标,而这些可能会导致执行计划改变。


凯发app官方网站的解决方案

在一个oltp系统中,基本上都要求执行计划的稳定,只有个别绑定变量和直方图要求传入不同值走不同执行计划,cardinality feedback是11g开始的新特性,为的是解决极个别情况下,优化器无法生成正确执行计划的问题,一般情况下,如果10g没有这方面的问题,在10g升级到11g时候,关闭cardinality feedback,通过做spa(sql 性能分析器 sql performance analyzer)确认升级后的性能稳定。

xx系统由于大量sql由于cardinality feedback导致重新解析,建议关闭:

alter system set "_optimizer_use_feedback"=false;

阅读(499) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~
")); function link(t){ var href= $(t).attr('href'); href ="?url=" encodeuricomponent(location.href); $(t).attr('href',href); //setcookie("returnouturl", location.href, 60, "/"); }
网站地图