博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
自适应游标共享技术01(Adaptive Cursor Sharing)
阅读量:6570 次
发布时间:2019-06-24

本文共 795 字,大约阅读时间需要 2 分钟。

 

什么是ACS(adaptiver cursor sharing)

 

      Oracle通过绑定变量技术解决了SQL语句硬解析过多的问题,降低了资源的争用。但是绑定变量在引入cursor sharing,增加了软解析的同时,也带来了CBO环境下的bind peeking问题。

  注:所谓bind peeking是指,oracle在第一次解析sql的时候,会“偷偷”地(peek)查看一下输入的绑定变量值,然后根据“偷看”到的数据值来确定执行计划,保存在liberary cache中,作为下一次的执行计划。这就带来一个问题,如果下次sql输入的变量恰好是和第一次取值分布差异很大的数据值,那么对该sql来讲就有可能使用低效甚至是错误的执行计划。     

  从oracle11g开始,为了弥补bind peeking的缺陷,oracle引入了ACS(Adaptive Cursor Sharing)技术,该技术将绑定变量的执行计划变为一个基于统计量分析的自适应过程,会根据绑定变量的数值动态调整执行计划。

   

Oracle使用ACS有两个前提条件:

  • 绑定变量使用了bind peeking。
  • 绑定变量的列上有直方图信息
  • 相关参数

 

 

参考信息:

 

http://www.itpub.net/thread-1762279-1-1.html

http://www.dataguru.cn/thread-532237-1-1.html

http://blog.itpub.net/15415488/viewspace-621535
http://blog.itpub.net/53956/viewspace-1384122/
http://blog.csdn.net/leshami/article/details/6923670
http://www.itpub.net/thread-1779225-1-1.html

 

你可能感兴趣的文章
the sentiments when install labelimage
查看>>
list、dict、tuple的一些小操作总结
查看>>
UVa 10055 - Hashmat the Brave Warrior
查看>>
Two Sum
查看>>
sudo日志审计
查看>>
【LeetCode-面试算法经典-Java实现】【015-3 Sum(三个数的和)】
查看>>
编程之美初赛第一场
查看>>
安卓APK瘦身
查看>>
将jsp页面转pdf
查看>>
python 字典的系列操作
查看>>
递归函数中清空静态变量
查看>>
Gdb+gdbserver无源码调试Android 动态链接库的技巧
查看>>
Windows中将javac和java两个命令集成到UltraEdit工具栏
查看>>
系统调用跟驱动程序中相应函数的参数对应关系
查看>>
网络资源整理
查看>>
[置顶] JAVA从零单排4-----继承、封装和多态详解
查看>>
Sharepoint学习笔记—习题系列--70-573习题解析 -(Q54-Q56)
查看>>
Java自定义简单标签
查看>>
c-version:null]] could not deserialize the servlet-context scoped attribute with name: "MENU_LIST"
查看>>
类 ArrayBlockingQueue<E>(一个由数组支持的有界阻塞队列。)
查看>>