千家信息网

Oracle 自适应游标

发表于:2025-02-03 作者:千家信息网编辑
千家信息网最后更新 2025年02月03日,1自适应游标共享Adaptive Cursor Sharing或扩展的游标共享(Extended Cursor Sharing)是Oracle 11g的新特性之一,主要用于解决以前版由于绑定变量窥探导
千家信息网最后更新 2025年02月03日Oracle 自适应游标

1

自适应游标共享Adaptive Cursor Sharing或扩展的游标共享(Extended Cursor Sharing)是Oracle 11g的新特性之一,主要用于解决以前版由于绑定变量窥探导致SQL语句无法获得最佳执行计划的缺陷,即能够对效率低下的游标(子游标)进行自动识别而选择最佳的执行计划。


2 使用绑定变量执行SQL语句并获得首次执行情况


3 自适应游标共享的外在体现
自适应游标共享主要通过三个字段来得以体现,即is_bind_sensitive,is_bind_aware,is_shareable。(注:此三个字段仅在Oracle 11g
中存在)。通过上面从v$sql(v$sqlarea中不存在is_shareable)的查询可知,三个字段分别被赋予了不同的值,代表了不同的含义。

is_bind_sensitive(绑定是否敏感)
表示该子游标中是否使用了绑定变量要素,且采用bind peeking方法进行执行计划生成。如果执行计划依赖于窥探到的值,此处为Y,
否则为N。

is_bind_aware(绑定是否可知)
表示该子游标是否使用了extended cursor sharing技术,是则为Y,否则为N,如为N,则该游标将废弃,不再可用。

is_shareable(是否可共享)
表示该子游标可否被下次软解析是否可共享使用。可共享则为Y,否则为N,表示该子游标失去了共享价值,按LRU算法淘汰。

由于该SQL语句为首次执行,因此从v$sql查询的结果中得知
is_bind_sensitive 为Y值(首次运行,执行了bind peeking)
is_bind_aware 为N值(首次运行,不被extended cursor sharing支持)
is_shareable 为Y值(执行计划可共享)


1、自适应游标共享在SQL语句首次执行时(使用绑定变量),进行窥探,并记录窥探结果,如果后续有相同的的SQL语句执行,则对窥探结果进行比较以判断是否需要生成新的执行计划。此即为绑定变量是否敏感。
2、绑定变量的可知性用于判断当前的游标是否为可扩展性游标共享,当不可知时,则游标被废弃。

3、自适应游标共享的实质是在Oracle 10g以前的基础上实现了多次绑定变量窥探,增加了获取最佳执行计划选择的机率。
4、尽管使用自适应游标共享特性,但并不能保证每次执行SQL语句一定按最佳计划执行。
5、自适应游标共享也不能保证两次执行相同SQL语句一定按相同的执行计划执行,因为自适应游标共享会不断尝试peeking。


游标 变量 语句 相同 三个 字段 结果 不同 特性 保证 查询 生成 运行 选择 低下 不断 代表 价值 可扩展性 含义 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 服务器操作系统的作用 车辆网络安全白皮书 监控服务器的经典案例 不灵姐和小月服务器生存5集 登陆后台数据库连接失败 两年制的计算机网络技术 未来之役服务器怎么选欧服 最终幻想一区服务器 深圳停车系统软件开发报价 全国小学生网络安全知识 招聘软件开发人员的广告 网络安全通报批示 怎么将json导入数据库 软件开发流程 技术框架 一分钟学会网络安全 数据库放在华为云的利弊 创建一个数据库命名为青春纪念册 凯里软件开发培训机构 手机网络安全专题讨论 软件开发的进度计划表 监控服务器的经典案例 全国中小学生网络安全知识 管理员退出服务器 世界上最强的网络安全公司 论文里数据库的表应该是什么样 网络安全知识竞赛没有成绩 从事网络安全累吗 保定翰阁领行软件开发 微信小程序租赁服务器源码 怎么加强数据库的安全防范
0