- 浏览: 981718 次
- 性别:
- 来自: 杭州
文章分类
最新评论
-
孤星119:
好熟悉的数据库字段啊, 上家公司做的项目每天都跟这些字段打招呼 ...
Oracle exp compress参数引起的空间浪费 -
itspace:
quxiaoyong 写道遇到个问题,网上一搜,全他妈这篇文章 ...
数据库连接错误ORA-28547 -
quxiaoyong:
遇到个问题,网上一搜,全他妈这篇文章。你转来转去的有意思吗?
数据库连接错误ORA-28547 -
hctech:
关于version count过高的问题,不知博主是否看过ey ...
某客户数据库性能诊断报告 -
itspace:
invalid 写道写的不错,我根据这个来安装,有点理解错误了 ...
AIX 配置vncserver
Oracle shared pool可以分为很多内存区域,其中最有代表性的是library cache和row cache。通过查询v$sgastat,可以看到shared pool内存区域的使用情况:
引用
SQL> select count(*) from v$sgastat where pool='shared pool';
COUNT(*)
----------
612
COUNT(*)
----------
612
进一步,亦可查看在shared pool中分配前20位内存区域:
引用
SQL> select * from
2 (select name,bytes from v$sgastat where pool='shared pool'
3 order by bytes desc)
4 where rownum<20;
NAME BYTES
-------------------------- ----------
free memory 23073268
sql area 15482384
ASH buffers 6375344
library cache 4438560
KCB Table Scan Buffer 4198400
KSFD SGA I/O b 4190228
row cache 3755444
KGLS heap 3527020
CCursor 3444716
krbmror 2619936
KQR M PO 2241092
NAME BYTES
-------------------------- ----------
kglsim hash table bkts 2097152
PCursor 1945104
PL/SQL MPCODE 1881664
Heap0: KGL 1628636
event statistics per sess 1370880
PL/SQL DIANA 1327028
KTI-UNDO 1235304
private strands 1198080
2 (select name,bytes from v$sgastat where pool='shared pool'
3 order by bytes desc)
4 where rownum<20;
NAME BYTES
-------------------------- ----------
free memory 23073268
sql area 15482384
ASH buffers 6375344
library cache 4438560
KCB Table Scan Buffer 4198400
KSFD SGA I/O b 4190228
row cache 3755444
KGLS heap 3527020
CCursor 3444716
krbmror 2619936
KQR M PO 2241092
NAME BYTES
-------------------------- ----------
kglsim hash table bkts 2097152
PCursor 1945104
PL/SQL MPCODE 1881664
Heap0: KGL 1628636
event statistics per sess 1370880
PL/SQL DIANA 1327028
KTI-UNDO 1235304
private strands 1198080
shared pool从结构上可以大体分为以下几类:
1、Permanent area,在实例启动时即分配,与实例的寿命相同,主要包含processes,sessions,segmented arrays等结构体。
引用
SQL> SELECT ksmchptr, ksmchsiz
2 FROM x$ksmsp
3 WHERE ksmchcls = 'perm';
KSMCHPTR KSMCHSIZ
-------- ----------
32FD8FE0 157812
32867000 7806944
31FF8498 29372
31FED6A8 44528
31F6D634 524404
31867000 7366196
317B0A4C 324368
3179D2DC 79728
31067000 7561948
30FFCC44 11776
30867000 7953476
KSMCHPTR KSMCHSIZ
-------- ----------
30067000 7966424
26FC2000 253736
26800038 8134600
14 rows selected.
2 FROM x$ksmsp
3 WHERE ksmchcls = 'perm';
KSMCHPTR KSMCHSIZ
-------- ----------
32FD8FE0 157812
32867000 7806944
31FF8498 29372
31FED6A8 44528
31F6D634 524404
31867000 7366196
317B0A4C 324368
3179D2DC 79728
31067000 7561948
30FFCC44 11776
30867000 7953476
KSMCHPTR KSMCHSIZ
-------- ----------
30067000 7966424
26FC2000 253736
26800038 8134600
14 rows selected.
2、Segmented Arrays主要包含段的enqueues (locks)、enqueue resources (resources)、transactions、transaction branches。可以通过X$KSMDD查询Segmented Arrays的相关信息。
引用
SQL> select name,heap,sum(numchunks) from X$KSMDD
2 group by name,heap;
NAME HEAP SUM(NUMCHUNKS)
--------------------------------------------- -------- --------------
segmented arrays 2000002C 2
call 2000002C 10
ksir State Object 2000002C 1
UNDO INFO SEGMENTED ARRAY 2000002C 12
KTCN: Hash Table Segmented Arr 2000002C 1
DISPATCHERS INFO 2000002C 1
...
2 group by name,heap;
NAME HEAP SUM(NUMCHUNKS)
--------------------------------------------- -------- --------------
segmented arrays 2000002C 2
call 2000002C 10
ksir State Object 2000002C 1
UNDO INFO SEGMENTED ARRAY 2000002C 12
KTCN: Hash Table Segmented Arr 2000002C 1
DISPATCHERS INFO 2000002C 1
...
3、Row Cache亦叫dictionary cache主要存放数据字典信息,可以通过v$rowcache获得详细信息
引用
SQL> select parameter,gets,getmisses from v$rowcache
2 order by getmisses desc;
PARAMETER GETS GETMISSES
-------------------------------- ---------- ----------
dc_histogram_defs 55526 22353
dc_histogram_data 29884 8743
dc_segments 112406 4761
dc_objects 27461 2984
dc_object_ids 47894 2911
。。。
2 order by getmisses desc;
PARAMETER GETS GETMISSES
-------------------------------- ---------- ----------
dc_histogram_defs 55526 22353
dc_histogram_data 29884 8743
dc_segments 112406 4761
dc_objects 27461 2984
dc_object_ids 47894 2911
。。。
4、Reserved Area,主要用于大的连续的内存分配,主要是为了防止shared pool内存分裂,只有当shared pool内存不可用时,才会启用。Reserved Area内存大小主要受以下参数影响
引用
NAME VALUE PDESC
--------------------------------------------- -------------------- --------------------------------------------------
shared_pool_reserved_size 2936012 size in bytes of reserved area of shared pool
_shared_pool_reserved_pct 5 percentage memory of the shared pool allocated for
_shared_pool_reserved_min_alloc 4400 minimum allocation size in bytes for reserved area
--------------------------------------------- -------------------- --------------------------------------------------
shared_pool_reserved_size 2936012 size in bytes of reserved area of shared pool
_shared_pool_reserved_pct 5 percentage memory of the shared pool allocated for
_shared_pool_reserved_min_alloc 4400 minimum allocation size in bytes for reserved area
亦可以查询数据字典V$SHARED_POOL_RESERVED查看内存分配情况。
shared pool内存分配主要通过堆(heap)来管理。简单介绍一下heap的基本知识:
1、一般情况下Oracle shared pool都有一个高级堆,高级堆下面允许有多个副堆,高级堆和副堆结构体大致相同,从堆的观点来说,属于堆的一个chunk起到副堆的指针作用。从Oracle 9i开始允许有多个高级堆。从Oracle 10g开始一个高级堆允许由多个缓冲区。
2、堆由一个或者多个extent组成,每个extent物理上使用一个granule,granule由物理连续分配的内存组成,granule大小可以通过隐含参数_ksmg_granule_size查看。
3、extent由一个或者多个chunks组成,状态主要分为permanent(永久,不可再生),recreatable(可再生),freeable(只有在session或者call期间保存必要的对象),free(可马上使用)。
其状态可以由内部表x$ksmsp查询:
引用
SQL> select distinct KSMCHCLS from x$ksmsp;
KSMCHCLS
--------
recr
freeabl
R-freea
perm
R-free
free
6 rows selected.
KSMCHCLS
--------
recr
freeabl
R-freea
perm
R-free
free
6 rows selected.
我们可以通过dump观察堆的物理结构
引用
SQL> alter session set events 'immediate trace name heapdump level 2';
Session altered
Session altered
从trace跟踪文件,可以找到以下内容:
引用
******************************************************
HEAP DUMP heap name="sga heap" desc=0x2000002c
extent sz=0x32c8 alt=108 het=32767 rec=9 flg=-126 opc=0
parent=(nil) owner=(nil) nex=(nil) xsz=0xf60
******************************************************
HEAP DUMP heap name="sga heap(1,0)" desc=0x2001ad40<==高级堆的子缓冲区
extent sz=0xfc4 alt=108 het=32767 rec=9 flg=-126 opc=0
parent=(nil) owner=(nil) nex=(nil) xsz=0x800000
EXTENT 0 addr=0x26800000<==extent,可以看到由多个chunk组成
Chunk 26800038 sz= 8134600 perm "perm " alo=255796<==chunk,可以有多种状态
Chunk 26fc2000 sz= 253736 perm "perm " alo=253736
Chunk 26ffff28 sz= 216 free " "<==free chunk在free list中会显式标记
EXTENT 1 addr=0x30000000
Chunk 30000038 sz= 24 R-freeable "reserved stoppe"
Chunk 30000050 sz= 421784 R-free " "
Chunk 30066fe8 sz= 24 R-freeable "reserved stoppe"
Chunk 30067000 sz= 7966424 perm "perm " alo=7966424
Chunk 307ffed8 sz= 296 free " "
...
EXTENT 5 addr=0x32800000
Chunk 32800038 sz= 24 R-freeable "reserved stoppe"
Chunk 32800050 sz= 421784 R-free " "
Chunk 32866fe8 sz= 24 R-freeable "reserved stoppe"
Chunk 32867000 sz= 7806944 perm "perm " alo=7806944
Chunk 32fd8fe0 sz= 157812 perm "perm " alo=157812
Chunk 32fff854 sz= 1964 free " "
Total heap size = 50331312
FREE LISTS:<==空闲列,可以明显看出bucket大小分配的规律,共有255个buckets,从16bytes到64k,为止。采用此方法分配内存,可以有效的减少内存碎片。每个Bucket之间都用double linked 相互连接,
Bucket 0 size=16
Bucket 1 size=20
Bucket 2 size=24
Bucket 3 size=28
Bucket 4 size=32
Bucket 5 size=36
Bucket 6 size=40
Bucket 7 size=44
Bucket 8 size=48
Bucket 9 size=52
Bucket 10 size=56
...
Bucket 50 size=216
Chunk 26ffff28 sz= 216 free " "<==和extent区域对应
...
Bucket 51 size=220
Bucket 52 size=224
Bucket 250 size=12320
Bucket 251 size=12324
Bucket 252 size=16396
Bucket 253 size=32780
Bucket 254 size=65548
Total free space = 6840
RESERVED FREE LISTS:<==预约空闲列
Reserved bucket 0 size=16
Reserved bucket 1 size=4400
Reserved bucket 2 size=8204
Reserved bucket 3 size=8460
Reserved bucket 4 size=8464
Reserved bucket 5 size=8468
Reserved bucket 6 size=8472
Reserved bucket 7 size=9296
Reserved bucket 8 size=9300
Reserved bucket 9 size=12320
Reserved bucket 10 size=12324
Reserved bucket 11 size=16396
Reserved bucket 12 size=32780
Reserved bucket 13 size=65548
Chunk 30000050 sz= 421784 R-free " "
Chunk 30800050 sz= 421784 R-free " "
Chunk 31000050 sz= 421784 R-free " "
Chunk 31800050 sz= 421784 R-free " "
Chunk 32800050 sz= 421784 R-free " "
Chunk 322b9ba8 sz= 4144 freeable "KGSKI schedule " ds=0x3079b328<==副堆指针
...
Total reserved free space = 2108920
UNPINNED RECREATABLE CHUNKS (lru first):《==LRU列:空闲列用尽,则用LRU列
Chunk 267e8b08 sz= 796 recreate "KGL handles " latch=0x308f0de4
Chunk 3211faf8 sz= 284 recreate "KQR SO " latch=0x31615484
Chunk 3211f9dc sz= 284 recreate "KQR SO " latch=0x31615484
Chunk 322443e4 sz= 284 recreate "KQR SO " latch=0x31615484
Chunk 32256980 sz= 284 recreate "KQR SO " latch=0x31615484
Chunk 32256cb8 sz= 284 recreate "KQR SO " latch=0x31615484
...
Unpinned space = 10522800 rcr=4745 trn=5763
PERMANENT CHUNKS:<==permanent chunks
Chunk 26800038 sz= 8134600 perm "perm " alo=255796
Chunk 26fc2000 sz= 253736 perm "perm " alo=253736
Chunk 32fd8fe0 sz= 157812 perm "perm " alo=157812
Chunk 30ffcc44 sz= 11776 perm "perm " alo=11776
Chunk 317b0a4c sz= 324368 perm "perm " alo=324368
Chunk 31ff8498 sz= 29372 perm "perm " alo=29372
Chunk 30067000 sz= 7966424 perm "perm " alo=7966424
Chunk 3179d2dc sz= 79728 perm "perm " alo=79728
Chunk 31fed6a8 sz= 44528 perm "perm " alo=44528
Chunk 30867000 sz= 7953476 perm "perm " alo=7953476
Chunk 31f6d634 sz= 524404 perm "perm " alo=524404
Chunk 31067000 sz= 7561948 perm "perm " alo=7561948
Chunk 31867000 sz= 7366196 perm "perm " alo=7366196
Chunk 32867000 sz= 7806944 perm "perm " alo=7806944
Permanent space = 48215312
HEAP DUMP heap name="sga heap" desc=0x2000002c
extent sz=0x32c8 alt=108 het=32767 rec=9 flg=-126 opc=0
parent=(nil) owner=(nil) nex=(nil) xsz=0xf60
******************************************************
HEAP DUMP heap name="sga heap(1,0)" desc=0x2001ad40<==高级堆的子缓冲区
extent sz=0xfc4 alt=108 het=32767 rec=9 flg=-126 opc=0
parent=(nil) owner=(nil) nex=(nil) xsz=0x800000
EXTENT 0 addr=0x26800000<==extent,可以看到由多个chunk组成
Chunk 26800038 sz= 8134600 perm "perm " alo=255796<==chunk,可以有多种状态
Chunk 26fc2000 sz= 253736 perm "perm " alo=253736
Chunk 26ffff28 sz= 216 free " "<==free chunk在free list中会显式标记
EXTENT 1 addr=0x30000000
Chunk 30000038 sz= 24 R-freeable "reserved stoppe"
Chunk 30000050 sz= 421784 R-free " "
Chunk 30066fe8 sz= 24 R-freeable "reserved stoppe"
Chunk 30067000 sz= 7966424 perm "perm " alo=7966424
Chunk 307ffed8 sz= 296 free " "
...
EXTENT 5 addr=0x32800000
Chunk 32800038 sz= 24 R-freeable "reserved stoppe"
Chunk 32800050 sz= 421784 R-free " "
Chunk 32866fe8 sz= 24 R-freeable "reserved stoppe"
Chunk 32867000 sz= 7806944 perm "perm " alo=7806944
Chunk 32fd8fe0 sz= 157812 perm "perm " alo=157812
Chunk 32fff854 sz= 1964 free " "
Total heap size = 50331312
FREE LISTS:<==空闲列,可以明显看出bucket大小分配的规律,共有255个buckets,从16bytes到64k,为止。采用此方法分配内存,可以有效的减少内存碎片。每个Bucket之间都用double linked 相互连接,
Bucket 0 size=16
Bucket 1 size=20
Bucket 2 size=24
Bucket 3 size=28
Bucket 4 size=32
Bucket 5 size=36
Bucket 6 size=40
Bucket 7 size=44
Bucket 8 size=48
Bucket 9 size=52
Bucket 10 size=56
...
Bucket 50 size=216
Chunk 26ffff28 sz= 216 free " "<==和extent区域对应
...
Bucket 51 size=220
Bucket 52 size=224
Bucket 250 size=12320
Bucket 251 size=12324
Bucket 252 size=16396
Bucket 253 size=32780
Bucket 254 size=65548
Total free space = 6840
RESERVED FREE LISTS:<==预约空闲列
Reserved bucket 0 size=16
Reserved bucket 1 size=4400
Reserved bucket 2 size=8204
Reserved bucket 3 size=8460
Reserved bucket 4 size=8464
Reserved bucket 5 size=8468
Reserved bucket 6 size=8472
Reserved bucket 7 size=9296
Reserved bucket 8 size=9300
Reserved bucket 9 size=12320
Reserved bucket 10 size=12324
Reserved bucket 11 size=16396
Reserved bucket 12 size=32780
Reserved bucket 13 size=65548
Chunk 30000050 sz= 421784 R-free " "
Chunk 30800050 sz= 421784 R-free " "
Chunk 31000050 sz= 421784 R-free " "
Chunk 31800050 sz= 421784 R-free " "
Chunk 32800050 sz= 421784 R-free " "
Chunk 322b9ba8 sz= 4144 freeable "KGSKI schedule " ds=0x3079b328<==副堆指针
...
Total reserved free space = 2108920
UNPINNED RECREATABLE CHUNKS (lru first):《==LRU列:空闲列用尽,则用LRU列
Chunk 267e8b08 sz= 796 recreate "KGL handles " latch=0x308f0de4
Chunk 3211faf8 sz= 284 recreate "KQR SO " latch=0x31615484
Chunk 3211f9dc sz= 284 recreate "KQR SO " latch=0x31615484
Chunk 322443e4 sz= 284 recreate "KQR SO " latch=0x31615484
Chunk 32256980 sz= 284 recreate "KQR SO " latch=0x31615484
Chunk 32256cb8 sz= 284 recreate "KQR SO " latch=0x31615484
...
Unpinned space = 10522800 rcr=4745 trn=5763
PERMANENT CHUNKS:<==permanent chunks
Chunk 26800038 sz= 8134600 perm "perm " alo=255796
Chunk 26fc2000 sz= 253736 perm "perm " alo=253736
Chunk 32fd8fe0 sz= 157812 perm "perm " alo=157812
Chunk 30ffcc44 sz= 11776 perm "perm " alo=11776
Chunk 317b0a4c sz= 324368 perm "perm " alo=324368
Chunk 31ff8498 sz= 29372 perm "perm " alo=29372
Chunk 30067000 sz= 7966424 perm "perm " alo=7966424
Chunk 3179d2dc sz= 79728 perm "perm " alo=79728
Chunk 31fed6a8 sz= 44528 perm "perm " alo=44528
Chunk 30867000 sz= 7953476 perm "perm " alo=7953476
Chunk 31f6d634 sz= 524404 perm "perm " alo=524404
Chunk 31067000 sz= 7561948 perm "perm " alo=7561948
Chunk 31867000 sz= 7366196 perm "perm " alo=7366196
Chunk 32867000 sz= 7806944 perm "perm " alo=7806944
Permanent space = 48215312
Oracle 在shared pool分配内存的顺序为:检索空闲列-->检索LRU列-->检索内存剩余空间。
这里需要注意的是即使还有足够多的剩余空间,因为内存碎片化,还是可能还会出现ORA-4031错误。
在Oracle10g中允许有多个sub shared pool,由隐含参数_kghdsidx_count决定,当前系统该参数值为
引用
NAME VALUE PDESC
--------------------------------------------- -------------------- --------------------------------------------------
_kghdsidx_count 1 max kghdsidx count
每个sub shared pool使用独立的shared_pool latch:
引用
SQL> select name,gets,misses,sleeps from v$latch_children
2 where name='shared pool';
NAME GETS MISSES SLEEPS
--------------------------------------------- ---------- ---------- ----------
shared pool 1269146 217 31
shared pool 21 0 0
shared pool 21 0 0
shared pool 21 0 0
shared pool 21 0 0
shared pool 21 0 0
shared pool 21 0 0
2 where name='shared pool';
NAME GETS MISSES SLEEPS
--------------------------------------------- ---------- ---------- ----------
shared pool 1269146 217 31
shared pool 21 0 0
shared pool 21 0 0
shared pool 21 0 0
shared pool 21 0 0
shared pool 21 0 0
shared pool 21 0 0
每个sub shared pool有4个子分区(heap):
引用
[ora10g@mcprod udump]$ grep "sga heap" mcstar_ora_25506.trc
HEAP DUMP heap name="sga heap" desc=0x2000002c
HEAP DUMP heap name="sga heap(1,0)" desc=0x2001ad40
HEAP DUMP heap name="sga heap(1,1)" desc=0x2001b978
HEAP DUMP heap name="sga heap(1,2)" desc=0x2001c5b0
HEAP DUMP heap name="sga heap(1,3)" desc=0x2001d1e8
HEAP DUMP heap name="sga heap" desc=0x2000002c
HEAP DUMP heap name="sga heap(1,0)" desc=0x2001ad40
HEAP DUMP heap name="sga heap(1,1)" desc=0x2001b978
HEAP DUMP heap name="sga heap(1,2)" desc=0x2001c5b0
HEAP DUMP heap name="sga heap(1,3)" desc=0x2001d1e8
利用以下命令能转储副堆:
引用
SQL> alter session set events 'immediate trace name heapdump_addr addr 0x3079b328';
Session altered.
Session altered.
查看跟踪文件
引用
******************************************************
HEAP DUMP heap name="KGSKI schedule" desc=0x3079b328
extent sz=0x1024 alt=32767 het=32767 rec=9 flg=2 opc=0
parent=0x2000002c owner=(nil) nex=(nil) xsz=0x1024<==最高堆指针
EXTENT 0 addr=0x322b9bb4
Chunk 322b9bbc sz= 4124 perm "perm " alo=2740
EXTENT 1 addr=0x322bbb3c
Chunk 322bbb44 sz= 3456 perm "perm " alo=3456
Chunk 322bc8c4 sz= 652 free " "
Total heap size = 8232
FREE LISTS:
Bucket 0 size=0
Chunk 322bc8c4 sz= 652 free " "
Total free space = 652
UNPINNED RECREATABLE CHUNKS (lru first):
PERMANENT CHUNKS:
Chunk 322b9bbc sz= 4124 perm "perm " alo=2740
Chunk 322bbb44 sz= 3456 perm "perm " alo=3456
Permanent space = 7580
HEAP DUMP heap name="KGSKI schedule" desc=0x3079b328
extent sz=0x1024 alt=32767 het=32767 rec=9 flg=2 opc=0
parent=0x2000002c owner=(nil) nex=(nil) xsz=0x1024<==最高堆指针
EXTENT 0 addr=0x322b9bb4
Chunk 322b9bbc sz= 4124 perm "perm " alo=2740
EXTENT 1 addr=0x322bbb3c
Chunk 322bbb44 sz= 3456 perm "perm " alo=3456
Chunk 322bc8c4 sz= 652 free " "
Total heap size = 8232
FREE LISTS:
Bucket 0 size=0
Chunk 322bc8c4 sz= 652 free " "
Total free space = 652
UNPINNED RECREATABLE CHUNKS (lru first):
PERMANENT CHUNKS:
Chunk 322b9bbc sz= 4124 perm "perm " alo=2740
Chunk 322bbb44 sz= 3456 perm "perm " alo=3456
Permanent space = 7580
欲从shared pool分配内存的进程必须获得shared pool latch,如发生硬解析等情况,且必须在分配内存过程中全程拥有,在隐含参数_kghdsidx_count=1的情况下,实际系统可用锁存器只有一个。因此在多个进程在同时获取shared pool内存时,将会引起争用,具体表现为latch:shared pool等待事件。
发表评论
-
buffer cache 的内部结构
2020-03-18 14:21 584BUFFER CACHE作为数据块的 ... -
Oracle OMC介绍
2020-03-18 13:19 495Oracle管理云服务(OMC)的大数据平台,自动收集的企业 ... -
参加Oracle勒索病毒防范专题培训会议
2019-09-27 17:15 5312019年7月22日,受邀参加Oracle勒索病毒防范专题培训 ... -
记一次内存换IO的Oracle优化
2019-09-27 16:50 835某客户数据库从P595物理 ... -
如何定位Oracle SQL执行计划变化的原因
2019-07-03 14:49 1471性能优化最难的是能够 ... -
如何定位Oracle SQL执行计划变化的原因
2018-10-30 09:24 1185性能优化最难的是能够 ... -
数据库性能优化目标
2018-10-08 10:59 528从数据库性能优化的场 ... -
数据库无法打开的原因及解决办法
2018-10-05 20:45 2145数据库的启动是一个相当复杂的过程。比如,Oracle在启动之前 ... -
怎么样彻底删除数据库?
2018-09-18 11:10 608Oracle提供了drop database命令用来删除数据库 ... -
Oracle减少日志量的方法
2018-09-10 10:17 871LGWR进程将LOG BUFFER中的 ... -
如何快速关闭数据库
2018-09-09 13:14 1240“一朝被蛇咬,十年怕井绳”。在没被“蛇”咬之前,很多DBA喜欢 ... -
关于《如何落地智能化运维》PPT
2018-05-17 10:19 1137在DTCC 2018发表《如何落地智能化运维》演讲,主要内容如 ... -
记录在redhat5.8平台安装oracle11.2容易忽视的几个问题
2018-05-11 19:58 587问题一:ping不通问题 在虚拟机上安装好linux系统后, ... -
《Oracle DBA实战攻略》第一章
2018-05-11 10:42 954即日起,不定期更新《OracleDBA实战攻略》一书电子版,请 ... -
Oracle 12c新特性
2018-05-11 10:33 907查询所有pdb [oracle@gj4 ~]$ sqlplu ... -
关于修改memory_target的值后数据库无法启动的问题
2017-02-28 12:24 3990操作系统:RHEL6.5 数据库版本:11.2.0.4 ... -
10g rac安装error while loading shared libraries libpthread.so.0 问题
2017-02-28 12:22 70311g rac安装在二节点跑脚本一般会报此错误: 解决这个问 ... -
记一次Oracle会话共享模式故障处理过程
2017-02-27 19:16 805故障简述 XXX第八人民医院HIS数据库7月13日11点左右从 ... -
RESMGR:cpu quantum等待事件处理过程
2017-02-27 18:23 2656由于数据库上线过程中出现大量的RESMGR:cpu quant ... -
谈谈log file sync
2014-03-19 14:18 1776数据库中的log file sync等待事件指的是,当user ...
相关推荐
**Shared Pool** 是Oracle数据库实例内存结构SGA(System Global Area)中的一个重要组成部分,主要用于存储共享的数据结构,如SQL语句、PL/SQL代码、执行计划、数据字典缓存等。它对提升数据库性能至关重要,特别是...
Oracle数据库的Shared Pool是其内存管理结构中的一个重要组成部分,主要负责缓存解析后的SQL语句和执行计划,以提高数据库的性能。在相克军的ORACLE讲座中,这一章节详细探讨了Shared Pool的工作原理、优化策略以及...
Oracle内存结构是数据库性能优化的关键因素,它主要分为两大部分:共享内存(SGA)和进程私有内存(PGA及UGA)。理解这些组件的工作原理对于优化Oracle数据库的性能至关重要。 1. SGA(System Global Area) SGA是...
1. **内部存储与外部存储**:内部存储主要指的是Oracle实例内存结构,包括SGA(System Global Area)和PGA(Program Global Area)。SGA是数据库进程共享的内存区域,而PGA则是每个用户进程私有的。外部存储则涉及到...
为了更深入地分析PGA,DBA可以利用事件命令将PGA内存结构转储到跟踪文件中进行研究。 其次,SGA是所有Oracle实例共享的内存区域,它在数据库启动时分配,关闭时释放。SGA包括固定区域、Buffer Cache、Shared Pool、...
Oracle 内存结构被总称为 SGA,主要包括数据库高速缓冲区(Database Buffer Cache)、重做日志缓冲区(Redo Log Buffer)和共享池(Shared Pool)三个部分。 四、Oracle 数据库 Oracle 数据库包含了用于存放数据的...
在内存结构上,Sharedpool可以逻辑地分为Library Cache和Dictionary Cache两部分,它们之间有紧密的交互。当SQL语句进入Library Cache时,Oracle会查找Dictionary Cache中的相关数据字典信息。若找不到所需信息,...
总之,"Oracle内存资源分配"是一个涉及多方面知识的复杂主题,需要深入理解Oracle内存结构,熟悉各种内存参数,以及具备一定的性能监控和调优技巧。通过合理的内存分配,我们可以最大化数据库性能,满足业务需求,...
### Oracle内存分配与调整——详解冯春培的文章 #### 一、引言 在Oracle数据库管理系统中,内存管理是一项至关重要的任务。不合理的内存配置可能导致性能下降甚至系统故障。冯春培作为一位经验丰富的Oracle专家,...
Oracle内存结构主要分为两大部分:SGA(System Global Area)和PGA(Program Global Area)。SGA是数据库进程共享的一块内存区域,而PGA则是每个单独数据库进程的私有内存空间。 1. SGA(系统全局区) - 数据缓冲...
- 这条命令将触发 Shared Pool 的内存结构以 Level 2 的级别转储到 trace 文件中。 - trace 文件通常位于 `$ORACLE_HOME/admin/<SID>/udump/` 目录下。 **案例分析:** 在具体的性能优化案例中,通常会涉及对 ...
Oracle 内存架构详解 Oracle 数据库的内存架构是 Oracle 性能的关键要素之一。内存配置的合理性直接影响着 Oracle 的性能,进而影响到 CPU 和 IO 的消耗。因此,了解 Oracle 的内存架构及其组成部分是非常重要的。 ...
- **Shared Pool**: 共享池包含SQL和PL/SQL的解析树、数据字典缓存以及库缓存,用于缓存已解析的SQL语句。 - ** PGA (Program Global Area)**: 每个用户进程或后台进程都有自己独立的PGA,包含私有SQL区、会话状态...
Oracle 10g的内存结构是数据库管理系统的关键组成部分,它决定了数据库的性能和稳定性。SGA(System Global Area)是Oracle数据库中一个重要的共享内存区域,用于存储数据库运行时的各种数据和控制信息。 1. SGA...
在Oracle内存结构中,主要分为两大类:共享内存(SGA,System Global Area)和进程专用内存(PGA,Program Global Area)。这两部分共同构成了Oracle实例的内存环境。 #### 1. 共享内存(SGA) SGA是Oracle实例的...
SGA是Oracle实例的核心组成部分之一,它是一个共享内存区域,包含数据和控制信息,旨在为多个并发用户或进程提供共享访问。SGA在实例启动时创建,在实例关闭时释放,确保每个实例拥有独立的内存空间,即使在多实例...
Oracle数据库的内存结构是其高效运行的关键组成部分,主要分为系统全局区(SGA)、程序全局区(PGA)、排序区、大池和Java池。本文将重点讨论SGA,它是Oracle数据库中最为重要的共享内存区域。 系统全局区(SGA)是...
2. 可变大小区域(Variable Size):这部分内存包括 shared_pool_size、java_pool_size、large_pool_size 等,用于存储PL/SQL代码、SQL解析信息以及Java对象等。 3. 数据缓冲区(Database Buffers):这是SGA中最大...
本文将详细介绍 Oracle 12c 的后台进程和内存结构图,帮助读者深入了解 Oracle 的内部工作机理。 一、Oracle 12c 后台进程 后台进程是 Oracle 数据库的核心组件,它们负责管理数据库的各个方面,包括事务处理、...