Library Cache Object loaded into SGA Heap size 2226K exceeds notification threshold (2048K)

weixin_34344677發表於2011-06-13
警告:
Memory Notification: Library Cache Object loaded into SGA
Heap size 2226K exceeds notification threshold (2048K)

原因:Oracle10g中,在load較大的物件進library cache中時,會記錄以上警告。
      在版本10.2.0.1中(目前用的版本正是10.2.0.1),這個定義大物件的閾值是2M,這是由隱含引數
      _kgl_large_heap_warning_threshold 指定的。

--X$KSPPI, X$KSPPCV 必須以sys使用者登入檢視
SQL> select ki.KSPPINM NAME, kv.KSPPSTVL VALUE, kv.KSPPSTDVL DISPLAY_VALUE
      from X$KSPPI ki, X$KSPPCV kv
     where ki.indx = kv.indx
       and ki.KSPPINM like '%&v_parameter%';
 
NAME                                                                             VALUE                                                                            DISPLAY_VALUE
_kgl_multi_instance_lock                                                    TRUE                                                                             TRUE
_kgl_multi_instance_pin                                                      TRUE                                                                             TRUE
_kgl_multi_instance_invalidation                                            TRUE                                                                             TRUE
_kgl_latch_count                                                                 0                                                                                     0
_kgl_heap_size                                                                   1024                                                                                1024
_kgl_fixed_extents                                                              TRUE                                                                                TRUE
_kgl_session_cached_objects                                                10                                                                                    10
_kgl_keep_cache_pct                                                            30                                                                                    30
_kgl_keep_cache_retain_pct                                                   20                                                                                   20
_kgl_bucket_count                                                                9                                                                                     9
_kglsim_maxmem_percent                                                      5                                                                                    5
_kgl_hash_collision                                                              FALSE                                                                                FALSE
_kgl_time_to_wait_for_locks                                                  15                                                                                    15
_kgl_large_heap_warning_threshold                                        2097152     


--解決辦法:
資料庫版本為10.2.0.1.0
alter system set "_kgl_large_heap_warning_threshold" =10485760 scope=spfile;--10M
然後重啟資料庫
SQL> show parameter kgl;
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
_kgl_large_heap_warning_threshold    integer     10485760

延伸:
1、oracle的隱含引數(以_開頭的引數),無法直接通過 show parameter來檢視,可以通過X$KSPPI和X$KSPPCV檢視來檢視(sys使用者)。
2、_kgl_large_heap_warning_threshold值以位元組為單位
3、從oracle10.2.0.2起,這個引數的預設值被修改為50M
select KSPPDESC from x$ksppi where ksppinm like '_kgl_large_heap_warning%';
maximum heap size before KGL writes warnings to the alert log --表明如果超出該kgl的最大值則寫入警告日誌

相關文章