关闭

Library Cache Lookup

1196人阅读 评论(0) 收藏 举报
分类:

Libraey Cache Data Access

library cache是关于SQL语句的SGA中的一系列的链表,

library cache是通过访问一系列的hash buckets,实现使用hash table,

每个特定的hash,链接到SQL语句

链接到SQL语句挂载hash buckets的列表,

每个语句在特定的列表上Hashes到一个hash

链表是一系列的处理或引用,事实上,SQL语句本身组成了句柄,在每个句柄下,可能有多个相同SQL

语句的版本,同一条SQL语句多个版本发生在如下情况:

--指向不同的对象(不同的用户)

--绑定变量类型不同

--优化器模式不同或者NLS设置不同

多版本的信息存储在单独的子library cache cursors,当一条新的SQL被解析时,

语句被Hash,被放到一个链表于hash值关联。不同的SQL语句可能有相同的

HASH.为了找到library cache中的sql语句,SQL语句被hash,扫描列表来查找匹配的SQL语句,如果存在多个版本,逐个匹配。

匹配SQL语句时通过访问parent library cursor,余下的信息存在在子游标中,

如果多个版本存在,多个版本的子游标依次访问。

 

 

 

 

 

0
0

查看评论
* 以上用户言论只代表其个人观点,不代表CSDN网站的观点或立场
    个人资料
    • 访问:1174490次
    • 积分:38522
    • 等级:
    • 排名:第102名
    • 原创:2811篇
    • 转载:14篇
    • 译文:0篇
    • 评论:46条
    文章分类
    最新评论