Memory Notification: Library Cache Object loaded into SGA
Heap size 2098K exceeds notification threshold (2048K)
出现原因:
These are warning messages that should not cause the program responsible for these errors to fail. They appear as a result of new event messaging mechanism and memory manager in 10g Release 2.
这都是警告信息不会因为这些错误信息造成应用程序执行失败.在oracle10gr2中是由于新的事件消息机制和内存管理才出现的.
The meaning is that the process is just spending a lot of time in finding free memory extents during an allocate as the memory may be heavily fragmented. Fragmentation in memory is impossible to eliminate completely, however, continued messages of large allocations in memory indicate there are tuning opportunities on the application.
这个消息意味着进程在内存呆能存在大量碎片的情况下在执行内存分配时花了很长的时间来寻找可用的内存空间.内存中的碎片不可能完全消除,然而在进行内存分配时持续出现这种消息说明可能是时候对应用程序进行优化了.
The messages do not imply that an ORA-4031 is about to happen.
这个消息并不意味着ora-4031错误会立刻出现.
解决方法:
In 10g we have a new undocumented parameter that sets the KGL heap size warning threshold. This parameter was not present in 10gR1. Warnings are written if heap size exceeds this threshold.
在oracle10g中有一个新的隐含参数来设置KGL堆大小警告阈值.这个参数在10gr1中没有.当堆大小超过阈值时就会写入警告信息.
Set _kgl_large_heap_warning_threshold to a reasonable high value or zero to prevent these warning messages. Value needs to be set in bytes.
将_kgl_large_heap_warning_threshold设置为一个合理的较高的值或为0可以阻止这些警告信息.它的大小单位是byte.
If you want to set this to 8192 (8192 * 1024) and are using an spfile:
(logged in as “/ as sysdba”)
SQL> alter system set "_kgl_large_heap_warning_threshold"=8388608 scope=spfile ; SQL> shutdown immediate SQL> startup
If using an “old-style” init parameter,Edit the init parameter file and add
_kgl_large_heap_warning_threshold=8388608
NOTE: The default threshold in 10.2.0.1 is 2M. So these messages could show up frequently in some application environments.
注意:在10.2.0.1中这个缺省的阈值是2M.因此在有些程序环境中这些警告信息经常出现.
In 10.2.0.2, the threshold was increased to 50MB after regression tests, so this should be a reasonable and recommended value.
在10.2.0.2中,这个缺省的阈值增加到50M.