关闭
侧边栏

绑定变量和cursor_sharing

Posted by dbtan on 十一月 30th, 2009

绑定变量和cursor_sharing: 如果SHARED_POOL_SIZE设置得足够大,又可以排除Bug的因素,那么大多数的ORA-04031错误都是由共享池中的大量SQL代码等导致过多内存碎片引起的。 可能的主要原因有: ·SQL没有足够的共享;·大量不必要的解析调用;·没有使用绑定变量。 实际上说,应用的编写和调整始终是最重要的内容
... ...
<阅读全文>

Shared Pool 的转储与分析

Posted by dbtan on 十一月 30th, 2009

Shared Pool 的转储与分析: 使用如下命令可以对共享池Library Cache信息进行转储分析: ALTER SESSION SET EVENTS 'immediate trace name LIBRARY_CACHE level LL'; 其中LL代表Level级别,对于9.2.0及以后版本,不同Level含义如下: ·Level=1,转储Library Cache统计信息;·Level=2,转储Hash Table概要;·Lev
... ...
<阅读全文>

了解X$KSMSP视图

Posted by dbtan on 十一月 30th, 2009

了解X$KSMSP视图: Shared Pool的空间分配和使用情况,可以通过一个内部视图来观察,这个视图就是X$KSMSP([K]ernal [S]torage [M]emory Management [S]GA Hea[P]),其中每一行都代表着Shared Pool中的一个Chunk。以下是X$KSMSP的结构: sys@CCDB> desc x$ksmsp Name       &
... ...
<阅读全文>

Oracle 10g 共享池管理的增强

Posted by dbtan on 十一月 27th, 2009

Oracle 10g 共享池管理的增强: 子缓冲池的分配的算法很简单:·每个子缓冲池必须满足一定的内存约束;·每4颗CPU可以分配一个子缓冲池,最多7个。 在Oracle 9i中,每个SubPool至少128MB,在Oracle 10g中,每个子缓冲池至少为265MB。如上篇日志所述,SubPool的数量可以通过_kghdsidx_count参数来控制,但是没有参数可
... ...
<阅读全文>

Oracle 9i 子缓冲池的增强

Posted by dbtan on 十一月 27th, 2009

Oracle 9i 子缓冲池的增强: 从Oracle 9i开始,Shared Pool可以被分割为多个子缓冲池(SubPool)进行管理,每个SubPool可以被看作是一个Mini Shared Pool,拥有自己独立的Free List、内存结构以及LRU List。同时Oracle提供多个Latch对各个子缓冲池进行管理,从而避免单个Latch的竞争(Shared Pool Reserved Area同样进行
... ...
<阅读全文>


Copyright © 2009 - 2019 https://www.dbtan.com. All rights reserved.