12_shared記憶體塊組成結構及4031錯誤產生原因分析

哎呀我的天吶發表於2014-12-05

                   free


chain
oracle 中存在大量的chain
chain的好處:可以連起來資料庫中的塊,其次可以使得塊被遍歷。
oracle 對鏈進行保護,oracl e使用到 latch。


17:45:40 SQL> select count(*) from x$ksmsp;
  COUNT(*)
----------
     52410
Elapsed: 00:00:00.78

17:46:05 SQL> select count(*) from dba_indexes;

  COUNT(*)
----------
      2360
Elapsed: 00:00:00.36

17:53:52 SQL> select count(*) from x$ksmsp;
  COUNT(*)
----------
     52426
Elapsed: 00:00:00.03

說明發生硬解析,我們的trunck增多了。

17:54:02 SQL> select name ,value from v$sysstat where name like \'parse%\';
NAME                                           VALUE
-------------------------------------------- ----------
parse time cpu                                   474
parse time elapsed                              1785
parse count (total)                            66763
parse count (hard)                              3916
parse count (failures)                           158
17:56:53 SQL> alter system flush shared_pool;
System altered.
18:02:17 SQL> select count(*) from x$ksmsp;
  COUNT(*)
----------
      7774


ORA-4031錯誤馬 上就變少了,但不是根本的解決辦法。

ORA-4031產生的原因就是大量的硬解析,需要大量的free區中的塊,但是不夠了... ...

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

相關文章