ITPub博客

首页 > Linux操作系统 > Linux操作系统 > memory architecture

memory architecture

原创 Linux操作系统 作者:taobup 时间:2011-05-16 15:43:56 0 删除 编辑
内存存储的信息:代码,会话信息,进程间需要通信的信息,程序执行中的状态,数据缓存。
SGA_MAX_SIZE
SGA自动管理模式  SGA_TARGET 启动时设置。部分需要手工设定容量,且占用SGA_TARGET的容量。ALTER SYSTEM 改变组件值。
------------------------
SGA 各个内存组件当前使用的粒度单位的大小可以通过 V$SGAINFO 视图进行查询。各个内存组件当前容量及最近一次改变容量操作的类型和时间可以通过 V$SGA_DYNAMIC_COMPONENTS 视图进行查询。Oracle 还维护着一个先进先出的缓冲区(circular buffer),其中记录了最近 400 次调整 SGA 内存组件容量的操作。管理员可以通过 V$SGA_RESIZE_OPS 视图查询这个缓冲区。
-------------------------------------------------------------------
当管理员为内存组件设置的容量不是粒度单位的整数倍时,Oracle 会将其向上(增大)修正为与其最接近的粒度单位的整数倍。
数据缓冲区  可用、锁定、脏。
用户可以针对每个表而设定全表扫描时缓冲区的使用方式
 
DB_nK_CACHE_SIZE 参数不能用于设定标准容量的数据块所使用的数据缓存区的容量。如果 DB_BLOCK_SIZE 参数的值为 nK, 则对 DB_nK_CACHE_SIZE 参数进行设定是不合法的操作。标准容量的数据块所使用的数据缓存区的容量必须从 DB_CACHE_SIZE 参数中取得。
管理员可以使用固定视图(fixed view)V$BUFFER_POOL 来查询各个数据缓存区组件的容量及正在执行中的改变缓存区组件容量操作的状态。
 
KEEP 缓冲池将一直保留存储在其中的方案对象的数据。
 RECYCLE 缓冲池将随时清除存储在其中不再被用户需要的数据。
 DEFAULT 缓冲池中存储的是没有被指定使用其他缓冲池的方案对象的数据,以及被显式地指定使用 DEFAULT 缓冲池的方案对象的数据。
 
 
重做条目?
 
当以下情况出现时,也会将共享 SQL 区清除出共享池:
 当用户使用 ANALYZE 语句更新或删除了方案对象(表,簇,索引等)的统计信息后,如果一个共享 SQL 区内的 SQL 语句引用了被分析过的方案对象,那么此共享 SQL 区将被清除出共享池。当被清除的 SQL 语句再次运行时,此 SQL 语句将被重新解析并保存到新的共享 SQL 区内,以反映方案对象最新的统计信息。
 如果 SQL 语句引用的方案对象经过了修改,则相应的共享 SQL 区将被标记为无效(invalidated),且此 SQL 语句下次运行时必须被重新解析。
 当管理员改变了数据库的全局数据库名(global database name)后,共享池内的所有数据都将被清除。

 管理员能够手工清除共享池内的全部信息以便评估系统性能(此种评估针对共享池,而非数据缓存(buffer cache)),而无需关闭实例再重新打开。这项工作是通过 ALTER SYSTEM FLUSH SHARED_POOL 语句完成的。
 
专用服务器 PGA内存管理
SQL 工作区(work area)所占的容量可以被统一地且自动地管理。DBA 只需要设定 PGA_AGGREGATE_TARGET 初始化参就能设定一个 Oracle 实例使用的全部 PGA 容量

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

请登录后发表评论 登录
全部评论

注册时间:2011-05-10

  • 博文量
    9
  • 访问量
    7012