library cache中parent cursor 及child cursor 问题

Oracle 10g   


1.   父游标里主要包含两种信息:   SQL文本以及 优化目标(optimizer goal) , 子游标包括游标所有的信息,比如具体的执行计划,绑定变量等。      
摘自   <>

2.  parent cursor包含了SQL TEXT和相关的hash value,v$sqlarea中的每一行代表了一个parent cursor,根据address表示了其内存地址。        
来自 http://space.itpub.net/50897/viewspace-584304

3.  PARENT CURSOR包含一个KGLHD,一个KGLOB和1-多个KGLNA。KGLOB指向SUBHEAP(每个PARENT CURSOR至少包含一个HEAP0,里面存放环境、状态和绑定变量的信息)。     每个Parent CURSOR至少有一个CHILD CURSOR,CHILD CURSOR中包含:CURSOR相关环境,CURSOR状态、绑定变量,执行计划等。每个CHILD CURSOR包含一个KGLHD,一个KGLOB和SUBHEAP。在每个CHILD CURSOR中,包含一个HEAP 6,里面存放的是执行计划。

来自   http://www.oraclefans.cn/forum/showblog.jsp?rootid=5553   





问题1:   
v$sqlarea中的每一行代表了一个parent cursor , 父游标中包含sql文本,根据v$sqlarea中SQL_TEXT可以看出。 父游标中包含的内容都会在 v$sqlarea 中体现吗 ?   如果是这样, 那么optimizer goal 具体到指什么 ?  如下表格中是 v$sqlarea 中的部分字段, 比如buffer_gets ,  是统计 Sum of buffer gets over all child cursors ,  在这个父游标相关的v$sqlarea视图中已经有了子游标相关的数值, 也就是说是等子游标完全生成后,才会将父游标信息存入v$sqlarea ,同时子游标信息写入v$sql   ( 父游标和子游标的生成应该有先后顺序吧? )   ?       为什么要称为 optimizer goal  (目标一般指还没有实现的)  ?   

DISK_READSNUMBERSum of the number of disk reads over all child cursors
DIRECT_WRITESNUMBERSum of the number of direct writes over all child cursors
BUFFER_GETSNUMBERSum of buffer gets over all child cursors
CPU_TIMENUMBERCPU time (in microseconds) used by this cursor for parsing/executing/fetching
ELAPSED_TIMENUMBERElapsed time (in microseconds) used by this cursor for parsing/executing/fetching






问题2 :  
在SQL解析过程中,在library cache中找到对应的Hash Bucket之后,在后面object handle 链表中既包含了父游标,也包含了子游标 ?   

根据上面的文章,每个 PARENT CURSOR至少包含一个HEAP0,里面存放环境、状态和绑定变量的信息 。 而parent cursor是由一个handle和一个object组成,可以通过在库缓存hash table中的hash value查找到handle, 而它的object 包含了指向它的每个 "child" cursor的指针 。

每个child cursor也是由一个handle和一个object构成. child object 又是由两个heap即heap0及heap6 组成, 其中Heap0包含所有的针对SQL语句每个版本的标示信息(比如Environment, Statistics, Bind Variables等,比如绑定变量值不同的长度可能导致sql解析版本的不同),Heap6包含执行计划 。 [这一段翻译自Oracle相关文档]   

上面的红色部分中的父游标包含的Heap0 和它的子游标的Heap0 应该不是一个Heap吧 ? 他们包含的信息都有 Environment,  Bind Variables等 。  父游标中到底含有哪些东西  ?

[ 本帖最后由 tolywang 于 2010-10-29 16:37 编辑 ]

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/35489/viewspace-677098/,如需转载,请注明出处,否则将追究法律责任。

转载于:http://blog.itpub.net/35489/viewspace-677098/

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值