以前在10g数据库上,如果遇到绑定窥探导致执行计划慢的情况,想要清除某条SQL的执行计划,让它硬解析,找了很久都没有找到直接操作share pool的方法(总不能alter system flush shared_pool),只能通过对表ddl使SQL硬解析。现在终于找到了,使用sys.dbms_shared_pool.purge,在11g下可以直接使用,但在10g上需要alter session...
分类:
数据库 时间:
2015-02-13 20:00:50
阅读次数:
221
执行方式如下:
@d:\latchprofx.sql sid,name,laddr % cache 10000
@d:\latchprof.sql sid,name,laddr % cache 10000
脚本出处:http://www.tanelpoder.com
latchprofx.sql
--------------------------------------...
分类:
数据库 时间:
2015-02-12 18:36:09
阅读次数:
309
本文为在某PUB提问后得到的版主回复
A shared pool has subpools (starting with 9i) and each subpool has sub-subpools or durations (starting with 10gR2 I think). It's easy to understand why there're subpools; each subp...
分类:
其他好文 时间:
2015-01-28 13:09:39
阅读次数:
159
Shared Pool的Sub Pool技术
由于硬解析时需要从Shared Pool重分配内存(分配内存是需要持有Shared Pool Latch),所以在硬解析比较多的系统中,非常容易引起Shared Pool Latch的征用。为了减缓该Latch的征用,从Oracle 9i开始,共享池可分为多个子池(Sub Pool)来管理(最多7个),下一节将主要讲解Shared Pool的Sub ...
分类:
其他好文 时间:
2015-01-27 09:28:50
阅读次数:
356
堆管理
shared pool是利用堆内存管理方式管理的(KGH:Kernel Generic Heap).从Oracle 9i开始,可以有多个最高级堆(TOP-LEVEL HEAP),最高级堆可以分为多个副堆,副堆下面还拥有下属副堆.堆和副堆的结构基本相同.从物理上来看,一个堆由于多个内存区以LINKED LIST的形式连接组成.一个内存区物理上使用一个GRANULE,一个内存区有多个CH...
分类:
其他好文 时间:
2015-01-25 13:56:13
阅读次数:
425
1.sql解析的过程oracle首先将SQL文本转化为ASCII字符,然后根据hash函数计算其对应的hash值(hash_value)。根据计算出的hash值到library cache中找到对应的bucket,然后比较bucket里是否存在该SQL语句。如果不存在,获得shared pool l...
分类:
数据库 时间:
2015-01-19 12:43:45
阅读次数:
222
latch:library cache --desc v$librarycache;latch:library cache用于保护hash bucket.library cache lock保护HANDLE。library cache pin保护library cache object--LCO.从...
分类:
系统相关 时间:
2014-12-30 11:36:42
阅读次数:
215
由于shared pool中最重要的是library cache,所以本文主要讲解Library cache的结构,library cache latch,library cache lock,library cache pin。
What is shared pool?
Shared pool是SGA中的一部分,由于它是SGA的一部分,这意味着它可以被所有的进程所访问,Share...
分类:
其他好文 时间:
2014-12-28 20:54:23
阅读次数:
188
You have set some of the initialization parameters as:
DB_BLOCK_SIZE=8KB
SGA_MAX_SIZE=2GB
SGA_TARGET =0
SHARED_POOL_SIZE=120MB
DB_CHCHE_SIZE=896MB
STREAM_POOL_SIZE=0
LARGE_POOL_SIZE=110M...
分类:
数据库 时间:
2014-12-23 21:14:32
阅读次数:
229
在10G之前,使用DBMS_STATS收集统计信息将会导致与此对象相关的游标失效,下次执行此的时候将会进行HARD PARSE,除非收集的时候NO_INVALIDATE设置为TRUE。由于硬解析会消耗大量的CPU,还会导致大量的library cache 和 shared pool 的LATCH竞争...
分类:
其他好文 时间:
2014-12-09 17:37:59
阅读次数:
326