游标共享(cursor sharing)指的是share cursor的共享 做到游标共享很简单,使用绑定变量就可以实现,但是会遇到下面两个问题1、开发人员在开发时,未使用绑定变量,这是如果要用绑定变量,就会大量更改sql.2、使用了绑定变量,但是由于绑定变量窥探的影响,会使某些解析树和执行计划不合时宜针对上面两个问题,分别用两种游标共享来解决1、常规游标共享 ,解决问题1通过参数cursor_sharing启用系统绑定变量exact 不启用绑定变量similar 只对安全的谓语条件启用,所谓的安全,就是执行计划不会随着这个值的变化而发生变化,比如主键列的等值查询,而范围类的查询则是不安全的,比如大于,小于,like ,这是一个过时的值,任何时候都不要设置为这个值 force 启用绑定变量,要在不改代码的情况下,使那些where 字句或者values子句(insert) 共享相同的执行计划和解析,可以用这个值。2、自适应游标共享11g中引入了自适应游标共享 bind sensitive 指某个含有绑定变量的目标SQL执行计划可能随着绑定变量输入值的变化而变化。当满足下列三个条件时,目标SQL对应的child cursor 会被标记为bind sensitive . 1)启用绑定变量窥探2)该SQL使用了绑定变量3)该SQL是不安全的谓语条件(比如范围查询,目标列有直方图统计信息的等值查询)bind aware 确定 含有绑定变量的目标SQL执行计划会随着绑定变量输入值的变化而变化,满足下列两个条件, 目标SQL对应的child cursor 会被标记为bind aware 1)已被标记为bind sensitive 2)该SQL接下来的两次执行,对应的runtime统计信息跟硬解析时的runtime统计信息相比差异较大。 v$sql中的三列:is_bind_sensitive is_bind_aware is_shareable 自适应游标共享相关的两个视图:v$sql_cs_statistics v$sql_cs_selectivityv$sql_cs_statistics显示指定child_cursor 的runtime 统计信息 v$sql_cs_selectivity 显示指定的,已被标记为bind_aware的child_cursor中存储的含绑定变量的谓语条件对应的可选择率范围。 自适应游标的整体执行过程:1、sql第一次执行,硬解析,然后根据一系列条件(有没有使用绑定变量,cursor_sharing的值,绑定变量列有没有直方图,等值查询还是范围查询等)来判断是否将child_cursor标记为bind_sensitive,如果已标记,会把执行该SQL的runtime统计信息额外存储在child cursor中2、第二次执行该SQL,会用软解析,并重用之前的解析树和执行计划 3、第三次执行,如果之前child_cursor已经被标记为bind_sensitive,而且第二次,第三次执行该sql的runtime统计信息和硬解析时的runtime统计信息相差过大,则会重新硬解析该SQL,同时生成一个新的child cursor ,并把该child cursor标记为bind_aware。4、对于标记为bind aware的sql ,再一次执行时,会根据谓语条件中绑定变量的可选择率来选择硬解析还是软解析。判断条件是,该选择率位于该SQL硬解析时同名谓语条件在v$sql_cs_statistics中的选择率范围内,则用软解析,反之则用硬解析。
ORACLE的游标共享
来源:这里教程网
时间:2026-03-03 14:40:12
作者:
编辑推荐:
下一篇:
相关推荐
-
雷神推出 MIX PRO II 迷你主机:基于 Ultra 200H,玻璃上盖 + ARGB 灯效
2 月 9 日消息,雷神 (THUNDEROBOT) 现已宣布推出基于英
-
制造商 Musnap 推出彩色墨水屏电纸书 Ocean C:支持手写笔、第三方安卓应用
2 月 10 日消息,制造商 Musnap 现已在海外推出一款 Oce
热文推荐
- Oracle date 类型比较和String比较
Oracle date 类型比较和String比较
26-03-03 - OPPO用户怎么让手机变流畅?花1分钟关闭这4个设置,瞬间变流畅
OPPO用户怎么让手机变流畅?花1分钟关闭这4个设置,瞬间变流畅
26-03-03 - 4 个概念,1 个动作,让应用管理变得更简单
4 个概念,1 个动作,让应用管理变得更简单
26-03-03 - 如何分析及处理 Flink 反压?
如何分析及处理 Flink 反压?
26-03-03 - 基于 Flink 的实时数仓生产实践
基于 Flink 的实时数仓生产实践
26-03-03 - 中报背后的阿里影业:互联网影视如何沉淀平台方法论
中报背后的阿里影业:互联网影视如何沉淀平台方法论
26-03-03 - oracle 报大小写错误
oracle 报大小写错误
26-03-03 - oracle 函数
oracle 函数
26-03-03 - oracle
oracle
26-03-03 - 【感恩节福利】你说谢谢我送礼,小米音箱、手机话费、京东购物卡等好礼等你来拿!
