该自适应游标共享功能允许包含绑定变量使用多个执行计划单个语句。
游标共享是“自适应的”,因为游标会适应其行为,因此数据库对于每次执行或绑定变量值而言并不总是使用相同的计划。本节包含以下主题:
- 自适应游标共享的目的 : 通过绑定窥视,优化程序在首次调用游标时便会窥视用户定义的绑定变量的值。
- 自适应游标共享的工作方式:示例自适应游标共享监视使用绑定变量来确定新计划是否更有效的语句。
- 绑定敏感的游标 : 甲绑定敏感的游标是光标其最佳计划可以取决于绑定变量的值。
- 绑定感知游标 : 一个绑定感知游标是一个绑定敏感的游标有资格使用不同的绑定值不同的计划。
- 游标合并 : 如果优化程序为可识别绑定的游标创建一个计划,并且该计划与现有游标相同,则优化程序可以执行游标合并。
- 自适应游标共享视图 : 您可以将这些
V$视图用于自适应游标共享,以查看选择性范围,游标信息(例如,游标是绑定感知的还是绑定敏感的)以及执行统计信息。
20.3.1自适应游标共享的目的
通过绑定窥视,优化器将在首次调用游标时窥视用户定义的绑定变量的值。
优化器确定任何WHERE子句条件的基数,就好像使用了文字而不是绑定变量一样。WHERE但是,如果子句中的一列具有倾斜的数据,则此列上可能存在直方图。当优化器查看用户定义的绑定变量的值并选择一个计划时,该计划可能不适用于所有值。
在自适应游标共享中,数据库监视随时间访问的数据是否有不同的绑定值,从而确保针对特定绑定值的游标的最佳选择。例如,优化器可能会选择绑定值一个计划10和绑定值不同的计划50。游标共享是“自适应的”,因为游标会适应其行为,这样优化器就不会总是为每次执行或绑定变量值选择相同的计划。因此,优化器会自动检测何时执行不同的语句会受益于不同的执行计划。
注意:
自适应游标共享与CURSOR_SHARING初始化参数无关。自适应游标共享同样适用于包含用户定义和系统生成的绑定变量的语句。自适应游标共享不适用于仅包含文字的语句。
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




