首页 > 新闻系统 > 编程天地 > 文章正文

SGA系统全局区内存结构了解

2008-04-14 16:31:04 来源:中国自学编程网 作者:佚名 点击:
System global area(SGA) 是一组共享的内存结构,它里面存储了oracle数据库实例(instance)的数据和控制文件信息。

  Dictionary cache

数据字典是数据库的一组表和视图,它包含数据库的结构、用户等的各种信息。Oracle在解析sql语句的时候会频繁的去访问这些表,对于数据库的这些操作是必不可少的。因为这些数据非常经常的被访问,所以有两个地方存放这些数据在内存中。一个地方叫 data dictionary cache,也称之为 row cache,因为在在这块区域中存储的是以行的方式做的。另一个地方叫做library cache,所有的用户都是共享访问这两个地方的。

共享内存的分配和重用

一般来说,在内存中的一些条目一直会保留着的,除非需要按照LRU算法从内存中flush掉,如果有内存的需求,有些不用的就会被flush掉。

当一条sql提交到oracle进行执行的时候,oracle一般会执行分配的以下步骤:

1、 到共享池中去检查要执行的sql是否存在,如果存在就直接使用,如果不存在就需要在共享sql区中分配内存,存放新编译的sql。不论哪一种情况,都有私有sql区都会和用户的共享区的sql相关联。

2、 Oracle会分配一个私有的sql区和会话对应,

Oracle在以下情况下会将共享sql区从共享池中flush掉:

l 当使用analyze的时候,所有涉及的对象,都会被flush掉,下一次使用时会重新分配;

l 当一个对象被修改了,其相应的sql也会被flush掉;

l 改变数据库的全局名,所有的sql都会被flush掉;

l ALTER SYSTEM FLUSH SHARED_POOL时,所有的sql也会被flush掉
9 7 3 1 2 3 4 8 :

相关文章:

    无相关新闻
    无相关新闻

精彩推荐
焦点大图推荐
本类热门文章

论坛美图

广告联系 | 版权说明 | 意见建议 | 加入收藏 | 军网站群 [ 军软件园 - 军软件商城 - 军软件园论坛 ]

电信与信息服务业务经营许可证:京ICP证050203