关闭
侧边栏

绑定变量和cursor_sharing

Posted by dbtan on 十一月 30th, 2009

绑定变量和cursor_sharing:

如果SHARED_POOL_SIZE设置得足够大,又可以排除Bug的因素,那么大多数的ORA-04031错误都是由共享池中的大量SQL代码等导致过多内存碎片引起的。

可能的主要原因有:

·SQL没有足够的共享;
·大量不必要的解析调用;
·没有使用绑定变量。

实际上说,应用的编写和调整始终是最重要的内容,Shared Pool的调整根本上要从应用入手。根本上,使用绑定变量可以充分降低Shared Pool和Library Cache的Latch竞争,从而提高性能。

反复的SQL硬解析不仅会消耗大量的CPU资源,也会占用更多的内存,严重影响数据库性能,而使
... ...
<阅读全文>

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概要;
·Level=4,转储Library Cache对象,只包含基本信息;
·Level=8,转储Library Cache对象,包含详细信息(如:child references、pin waiters等);
·Level=16,增加heap sizes信息;
·Level=32,增加heap信息。

... ...
<阅读全文>

了解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                     Null?    Type
------------------------ -------- ----------------
ADDR         &
... ...
<阅读全文>

Oracle 10g 共享池管理的增强

Posted by dbtan on 十一月 27th, 2009

Oracle 10g 共享池管理的增强:

子缓冲池的分配的算法很简单:
·每个子缓冲池必须满足一定的内存约束;
·每4颗CPU可以分配一个子缓冲池,最多7个。

在Oracle 9i中,每个SubPool至少128MB,在Oracle 10g中,每个子缓冲池至少为265MB。如上篇日志所述,SubPool的数量可以通过_kghdsidx_count参数来控制,但是没有参数可以显示地控制SubPool的大小。

根据以上规则,在一个12颗CPU的系统中,如果分配300MB Shared Pool,Oracle 9i将创建2个SubPool,每个大约150MB,如果共享池
... ...
<阅读全文>

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同样进行分割管理)。SubPool最多可以有7个,Shared Pool Latch也从原来的一个增加到现在的7个。如果系统有4个或4个以上的CPU,并且SHARED_POOL_SIZE大于250MB,Oralce可以把Shared Pool分割为多个子缓冲池(SubPool)进行管理,在Oracle 9i中,每个SubPool至少128MB。 以下查询显示的是为管理SubPool而新增的子Latch:... ...
<阅读全文>


Copyright © 2009 - 2018 https://www.dbtan.com. All rights reserved.    京ICP备13006977号-1