Oracle Alert: Library Cache Object loaded into SGA

在平時檢查Oracle Alert時,發現有下列的訊息:
Memory Notification: Library Cache Object loaded into SGA
Heap size 54172K exceeds notification threshold (51200K)
Details in trace file .../PROD_ora_22179.trc
KGL object name :EXPLAIN PLAN /* rep_cm_sql */ SET STATEMENT_ID = '69796.1'
INTO questpa.QUEST_CM_PLAN_TABLE FOR SELECT A.TRX_NUMBER,A.SOLD_TO_CUSTOMER_ID,
A.DU1,A.INVOICE_CURRENCY_CODE, A.CUSTOMER_NUMBER,A.CUSTOMER_NAME,A.CUSTOMER_NAME2,
A.NAME,A.CURRENCY, A.DEPT_NAME,A.SEGMENT3...


之前曾在google查詢過相關的問題,但是又忘了,所以這次記錄一下:

在Oracle 10g的版本中有一個隱含的參數_kgl_large_heap_warning_threshold,預設值是2M,
當加掛到SGA的對象大於2M時,就會得到這個警告的訊息。

不過這個訊息並不會造成應用程式執行錯誤,也不會立刻就產生ORA-4031的錯誤。

我們的EBS是11i,DB是11gR2,而下列SQL可以查詢_kgl_large_heap_warning_threshold的值是50MB
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';
     
如果不想在alert中見到這個警告訊息,可以將值設大一點,需要重開資料庫
SQL> alter system set "_kgl_large_heap_warning_threshold"=104857600 scope=spfile;

因為alert中沒有伴隨出現ora的錯誤,資料庫也沒有出現問題,
不過Heap size大於50MB,有時間再來好好研究看看。

利用Plink替代Putty來建立Script