手机
当前位置:查字典教程网 >编程开发 >Oracle教程 >详解ORACLE中游标的生命周期
详解ORACLE中游标的生命周期
摘要:在网络或者书籍中,我们可以非常容易的了解到ORACLE中游标的生命周期包括如下部分:1,打开游标--opencursor,此步骤在UGA里申...

在网络或者书籍中,我们可以非常容易的了解到ORACLE中游标的生命周期包括如下部分:

1,打开游标-- open cursor,此步骤在 UGA 里申请一块内存给游标使用,这个时候游标还没有与sql语句关联。
2,解析游标-- sql与游标关联起来,解析sql的内容(包括执行计划),解析后的内容会被加载到共享池中(share pool-- library cache)。在UGA申请的内存用来保存指向这个共享游标(share cursor)在library cache中的位置。
3,定义输出变量-- 如果sql语句返回数据,必须先定义接收数据的变量。这一点不仅对查询语句很重要,对于使用returning 自居的delete、insert和update 语句也很重要。
4,绑定输入变量-- 如果sql语句使用了绑定变量,必须提供他们的值。绑定的过程是不做什么检查。如果指定了无效的数据,执行的过程中会爆出一个运行时错误。
5,执行游标-- 执行跟游标关联的sql。注意 数据库并非总是在这一步做重要的事情。事实上,对于很多类型的查询语句来说,真正的处理过程通常会被推迟到fetch数据阶段。
6,获取游标-- 如果sql语句返回数据,这一步会接受这些数据。特别是在查询语句中,大部分的处理工作都是在这一步进行的。在查询语句中,可能只会读取部分记录,换句话讲,游标有可能在取到所有记录前被关闭。
7,关闭游标-- 释放UGA中与这个游标有关的资源,从而这些资源可供其他的游标使用。在library cache中的share cursor不会被清除,它会继续保留在library cache 中,等待被重用(软解析重用)。

重复的内容,我们不做过多介绍,今天我们来看一下游标生命周期中各个部分所扮演的角色,以及如何利用它们来优化我们的程序。

借鉴《oracle性能诊断艺术》中的代码片段,我们来研究一下游标的生命周期;

?

【详解ORACLE中游标的生命周期】相关文章:

ORACLE 修改表结构 之ALTER CONSTAINTS的使用

ORACLE 毫秒与日期的相互转换示例

深入ORACLE迁移到MYSQL的总结分析

ORACLE查询表最近更改数据的方法

Oracle中的锁(LOCK)机制

ORACLE自启设置与导入导出的方法

ORACLE数据库查看执行计划的方法

Oracle数据库的应用结构

Oracle 游标使用总结

windows 7安装ORACLE 10g客户端的方法分享

精品推荐
分类导航