在父游标,由于不同的运行环境,此时同样会产生新的子游标,新子游标的CHILD_NUMBER在已有子游标基础上以1为单位累计。
子游标包括游标所有相关信息,如具体的执行计划、绑定变量,OBJECT和权限,优化器设置等。子游标随时可以被LRU算法置换出
library cache,当子游标被置换出library cache时,oracle可以利用父游标的信息重新构建出一个子游标来,这个过程叫reload。
v$sql中中 的每一行表示了一个child cursor,根据hash value和address与parent cursor 关联。
child cursor有自己的address,即v$sql.child_address。
确定一个游标的三个主要字段:address,hash_value,child_number,
五、演示父游标、子游标
[sql] view plaincopyprint
/************************************ 首先创建表t **************************************/
SQL> create table t as select empno,ename,sal from emp where deptno=10;
Table created.
*********************************** 对表进行查询*****************************************/
SQL> select * from t where empno=7782;
EMPNO ENAME SAL
---------- ---------- ----------
7782 CLARK 2450
SQL> SELECT * from t where empno=7782;
EMPNO ENAME SAL
---------- ---------- ----------
7782 CLARK 2450
SQL> SELECT * FROM t WHERE empno=7782;
EMPNO ENAME SAL
---------- ---------- ---------- |