zoukankan      html  css  js  c++  java
  • kgl simulator,共享池simulator以及缓冲simulator相关解释

    从9i开始学习的朋友一定习惯了v$sgastat视图中 一系列的sim项,主要包括各种 kglsim,sim cache segment trace等等。如下例:
    SQL> select * from v$sgastat where lower(name) like '%sim%' order by name;
    
    shared pool  kglsim count of pinned he        1920
    shared pool  kglsim free heap list              96
    shared pool  kglsim free obj list               96
    shared pool  kglsim hash table                8208
    shared pool  kglsim hash table bkts        4194304
    shared pool  kglsim heap                    782208
    shared pool  kglsim main lru count           76800
    shared pool  kglsim main lru size           151040
    shared pool  kglsim object batch           1163520
    shared pool  kglsim pin list arr               288
    shared pool  kglsim recovery area             1920
    shared pool  kglsim sga                      30552
    shared pool  kglsim size of pinned mem        3776
    
    shared pool  ksim client list                  168
    shared pool  log_simultaneous_copies           800
    shared pool  sim cache nbufs                   640
    shared pool  sim cache sizes                   640
    shared pool  sim kghx free lists                 8
    shared pool  sim lru segments                 1280
    shared pool  sim segment hits                 1280
    shared pool  sim segment num bufs              640
    shared pool  sim state object                   40
    shared pool  sim trace buf                    5144
    shared pool  sim trace buf context             200
    shared pool  sim_knlasg                       1280
    shared pool  simulator hash buckets         131328
    
    shared pool  simulator hash latch             5120
    shared pool  simulator latch/bucket st        2816
    
    28 rows selected.
    
    有时你也会发现存在sim相关的latch,
    
    SQL> select name from v$latch where name like '%sim%';
    
    sim partition latch
    simulator hash latch
    simulator lru latch
    
    显然Oracle实例中存在着这许多的模拟器(simulator),他们是 干啥的? 这些模拟器帮助Oracle实例获知当拥有更大的内存容量(涉及buffer_cache,shared_pool_size等)时可以节省多少时间和功。这些信息被汇总到几个常用视图中,如 V$SHARED_POOL_ADVICE, V$MTTR_TARGET_ADVICE, V$DB_CACHE_ADVICE等等。模拟器特性从9i开始被引入,也就是这些视图第一次出现的时候。 MMAN进程也利用这些信息作为SGA动态调整的基本依据(在sga_target或memory_target启用的情况下)。 KGL simulator会跟踪共享池内存分配并扮演模拟器引擎的角色。 KGL是 kernel general Library cache manager,它管理library cache中的对象 包括游标,PL/SQL存储过程,表的定义等等。 KGL simulator 评估当缓存大于目前情况的获益。 其通过将flush out出library cache的object的hash code保存至kgl simulator的 hash 列表中,以造成object似乎仍在缓存中的假象,方便其统计相关的数据。 当有对象被读入library cache中时,Oracle检查kgl simulator中的hash列表,若命中说明历史hash列表中的对象对当前实例仍有用,即更大的内存空间对实例来说是有益的。
  • 相关阅读:
    【万里征程——Windows App开发】使用华丽丽的字体
    【万里征程——Windows App开发】SemanticZoom视图切换
    用Alt码打出Pi以及各式各样的符号
    3行代码列出硬盘上所有文件及文件夹
    【万里征程——Windows App开发】ListView&GridView之分组
    【万里征程——Windows App开发】ListView&GridView之添加数据
    从头认识js-js中的对象
    js中如何判断属性是对象实例中的属性还是原型中的属性
    从头认识js-HTML中使用JavaScript
    从头认识js-js的发展历史
  • 原文地址:https://www.cnblogs.com/macleanoracle/p/2967365.html
Copyright © 2011-2022 走看看