暂无图片
暂无图片
暂无图片
暂无图片
暂无图片
SGA和PGA.pdf
348
2页
5次
2022-06-20
免费下载
组成
SGA
Database Buffer Cache
是用来保存从数据文件中读取的数据块的一片内存区域,保存正在或者最近被使用的
data block
可分为:
Default pool
:正常情况下,数据块存放的内存区域
Keep pool
:这个区域
(
)
用于将一些数据始终固定在内存中,
Default pool
会根据一个过期算法
(LRU)
过期的脏数据写到磁盘上。
alter table t1 storage(buffer_pool keep);
将表从
keep pool
移除
alter table t1 storage(buffer_pool default);
查看
keep pool
存在对象
select segment_name from dba_segments where BUFFER_POOL = 'KEEP';
Recycle pool
:存放一些不经常使用的数据块,避免这些数据块在
Default pool
池中占据空间。
1)
Redo Log Buffer
存放在线重做日志的缓存区,
Redo log buffer
以循环的方式写入,当
redo log
已经写到磁盘后,就可以被后
续的日志数据覆盖
2)
Shared Pool
组成:
Library Cache
Library Cache
里面保存着可执行的
SQL
语句哈希值及
Pl/SQL
包,以及
SQL
的执行计划和一些控制
构,比如锁。
当一条
SQL
语句被执行时,
Oracle
尝试到
Library Cache
中查找是否有相同的
SQL
(通过
hash_value)
如果有,将直接重用存在的
SQL
的信息(执行计划
,
这个称作软解析
(soft pase)
或者叫做
library
cache hit
,反之,
SQL
将被重新解析,这个过程称为
hard parse
或者叫
library cache miss
Data Dictionary Cache
数据字典区存放
Oracle
的数据字典信息,这些信息包含数据库中对象的数据信息,结构信息 等,
这些信息在
SQL
解析的过程中需要频繁的被访问到。
视图
dba(all,user)_tables ...
基表
user$,table$...
固化表
X$... x$bh
Server Result Cache
这部分内存中保留了
SQL
查询的结果集,这样对于后续的相同查询,
Oracle
无需重新加载数据块进
行计算,直接使用现有的数据集。由参数
RESULT_CACHE_MODE
设定
默认值
Manual
,需要使用
RESULT_CACHE hint
来启用。
可修改为
FORCE
对所有
SELECT
操作生效(会消耗更多
shared_pool
空间)
PL/SQL
函数结果:对于
pl/sql
函数,对结果进行缓存。
3)
Large Pool
large pool
对数据的处理不使用
LRU
算法
,
shared pool
更高效的内存收取方式
:
MTS
模式下
UGA
会放在
large pool
并行执行时会使用
large pool
Rman
备份时启动并行备份方式时,使用
large pool
4)
Java Pool
用于保存会话运行的JAVA代码和信息,比如java类,方法...
5)
Streams Pool
Streams Pool
里面存放着留相关的信息,比如流队列信息,同时也为流复制中
capture
进程提供进程内存空
间。
Streams Pool
只为流复制提供内存空间,如果没有手工配置,也没有配置流复制,这个空间将设置为
0.
6)
Fixed SGA
保存通用的数据库和实例状态信息。
7)
1.
.
SGAPGA
2021425
15:36
分区
SGA
PGA
的第
1
PGA
私有
SQL
私有
SQL
区包含了绑定变量值和运行时期内存结构信息等数据。每一个运行
SQL
语句的会话都有一个块私有
SQL
区。所有提交了相同
SQL
语句的用户都有各自的私有
SQL
区, 并且他们共享一个共享
SQL
区。因此,一
个共享
SQL
区可能和多个私有共享区相关联。
1)
游标和
SQL
一个
Oracle
预编译程序或
OCI
程序的应用开发人员能够很明确的打开一个游标,或者控制一块特定的私有
SQL
区,将他们作为程序运行的命名资源。
2)
会话内存
基于排序的操作(
ORDER BY
GROUP BY
ROLLUP
、窗口函数);
Hash Join
Bitmap merge
Bitmap create
3)
2.
UGA
UGA
是一个会话含义的内存区,它保存着和会话相关的信息,比如会话登录信息,绑定变量的值,
Pl/SQL
包的
参数信息等。
UGA
必须保证会话能够访问到
UGA
当中的数据,因此
UGA
的位置会随数据库连接方式的不同而不同。
当连接使用的是专用模式(
dedicated)
时,因为会话是专有的,所
UGA
属于
PGA
的一部分。
当连接模式为
MTS
时,由于会话可能会使用任意一个共享进程,因此这些进程必须能够同时访
UGA
中的
据,此时
Oracle
会把
UGA
放在
SGA
区中(共享内存区域)。
3.
SGA
PGA
大小设置
根据经验值设定
SCA
PGA
OARCLE
的内存大小
SGA+PGA
为实际物理内存的
70
%左右
SGA
设置此大小的
70
%一
80
PGA
设置此大小的
20
30
1.
据系统实际负载情况进行设定
确定
sga
大小
select t.sga_size,estd_physical_reads from v$sga_target_advice t order by 1;
estd_physical_reads
不再减小时取
sga-size
对应值
确定
pga
大小
select s.pga_target_for_estimate,s.estd_pga_cache_hit_percentage from v$pga_target_advice s order by 1
estd_pga_cache_hit_percentage
达到
100%
时取
pga_target_for_estimate
对应值
2.
.
分区
SGA
PGA
的第
2
of 2
免费下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜