pl\sql 查詢SQL 初始化等待

huangdazhu發表於2014-05-09
今天開發人員使用的一個oracle資料庫,在使用pl\sql進行查詢的時候,有的時候提示在初始化,等待時間稍微的久了一點,做一下分析:

1:檢視了oracle的資料庫版本 oracle10.2.0.1
同時檢視了oracle的alert日誌發現日誌中報了大量的日誌:
Tue May 06 18:19:58 2014
Memory Notification: Library Cache Object loaded into SGA
Heap size 2238K exceeds notification threshold (2048K)
Details in trace file d:\oracle\product\10.2.0\admin\orcl\udump\orcl_ora_4324.trc
KGL object name :SELECT /*+rule*/ SYS_XMLGEN(VALUE(KU$), XMLFORMAT.createFormat2('TABLE_T', '7')), KU$.OBJ_NUM FROM SYS.KU$_HTABLE_VIEW KU$ WHERE NOT (BITAND (KU$.PROPERTY,8192)=8192) AND  NOT BITAND(KU$.SCHEMA_OBJ.FLAGS,128)!=0 AND  KU$.SCHEMA_OBJ.NAME=:NAME1 AND  KU$.SCHEMA_OBJ.OWNER_NAME=:SCHEMA2
Tue May 06 22:00:30 2014

2:問題原因
在Oracle 10.2.0.1版本資料庫中隱含引數_kgl_large_heap_warning_threshold預設值是2M,該引數控制載入到記憶體中物件的大小,當載入的物件大於2M時,
就會在alert警告檔案中進行提示。2M的預設大小相對太小,因此在10.2.0.1版本中可能很容易遇到這個報錯資訊。該引數預設值在10.2.0.2版本中進行了調整,調整到了50M。

3:查詢SQL:
select a.ksppinm name, b.ksppstvl value, a.ksppdesc description
  from x$ksppi a, x$ksppcv b
 where a.indx = b.indx
   and a.ksppinm = '_kgl_large_heap_warning_threshold'

4:調整該引數
alter system set "_kgl_large_heap_warning_threshold"=52428800 scope=spfile;

5:重啟資料庫例項

問題得到解決



來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/28869493/viewspace-1157383/,如需轉載,請註明出處,否則將追究法律責任。