我的编程空间,编程开发者的网络收藏夹
学习永远不晚

Oracle 自适应游标

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

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。


免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

Oracle 自适应游标

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

2024-04-02

什么是oracle游标

Oracle游标是一种用来处理查询结果集的数据库对象。它允许开发者在一个SQL语句执行后,可以逐行地处理结果集中的数据。游标可以类比为一个指向查询结果集中的当前行的指针。通过游标,开发者可以逐行地读取和处理查询结果集中的数据,而不必一次性将
2023-08-30

oracle游标怎么写

oracle 游标是一种指向结果集中的当前行的指针。它使用以下语法创建:declare cursor_name cursor for select_statement;可使用 open、fetch 和 close 等操作在游标上进行操作。f
oracle游标怎么写
2024-05-21

oracle中游标的作用

游标是 oracle 数据库中遍历结果集并逐行处理数据的机制,主要用于:遍历结果集处理大数据集逐行更新或删除数据事务处理Oracle 中游标的作用什么是游标?游标是 Oracle 数据库中的一种机制,它允许您逐步遍历结果集中的数据行。它
oracle中游标的作用
2024-05-09

Oracle游标使用详解

Oracle游标是一种用于处理结果集的数据库对象。游标是一个私有的数据库对象,它可以存储查询结果集,并允许用户在结果集中进行操作。以下是Oracle游标使用的详细说明:1. 声明游标:在使用游标之前,首先需要声明游标。游标可以在PL/SQL
2023-09-15

oracle中游标的用法

游标是一种遍历查询结果集的机制,让开发者逐行处理数据。其用法包括:1. 声明游标;2. 打开游标;3. 提取数据;4. 获取行状态;5. 关闭游标。游标的优点包括逐行处理、减少网络流量和提高性能,但缺点是占用资源和存在潜在问题。Oracle
oracle中游标的用法
2024-05-09

oracle如何定义游标

在Oracle中,可以使用游标来处理查询语句的结果集。定义游标需要使用`DECLARE`语句,并且需要指定游标的名称、查询语句和游标类型。以下是一个示例,演示了如何在Oracle中定义游标:```sqlDECLARECURSOR curso
2023-08-24

oracle怎么查询游标

要查询Oracle中的游标,可以按照以下步骤进行操作:1. 声明游标:在PL/SQL块中使用`DECLARE`语句声明游标变量。例如:```sqlDECLAREcursor_name SYS_REFCURSOR;BEGIN-- ...END
2023-08-30

如何使用css实现自适应标题浮动效果

这篇文章主要介绍了如何使用css实现自适应标题浮动效果,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。本篇文章通过代码实例给大家介绍一下css实现自适应标题浮动效果的方法。有一
2023-06-14

discuz怎么做自适应

要实现Discuz自适应,你可以按照以下步骤操作:1. 使用响应式布局:采用CSS的flexbox布局或者CSS Grid布局来实现页面的自适应排布。这样可以根据不同屏幕尺寸调整页面的布局。2. 使用媒体查询:通过媒体查询,可以根据不同屏幕
2023-10-08

html自适应怎么做

html 自适应允许网页自动调整布局以适应不同设备的屏幕尺寸。实现 html 自适应的方法包括:响应式设计:使用 css 媒体查询检测屏幕尺寸并应用适当的样式。流体网格布局:使用百分比值定义元素大小以实现缩放。弹性盒模型:提供对元素排列的灵
html自适应怎么做
2024-05-21

编程热搜

目录