第十四讲--PGA管理和调整

本文深入探讨了Oracle数据库的两种工作方式:dedicatedserver与sharedserver,并详细解释了PGA内存管理的两种模式及其对内存排序的影响。特别强调了如何在OLTP和DSS系统中合理设置PGA内存大小,以及查看和调整PGA内存的方法。

Oracle有两种工作方式:

1.      dedicated server;

一个连接对应一个server process。连接的请求得到最及时的相应。


2.      shared server;

多个连接由调度进程随机分配,连接被放入SQL队列,6个server process不断轮询从SQL队列中取出SQL执行。Despatcher只是调度的作用,起负载很小,主要的负载在server process上。适合于数据库的连接量非常大,同时每一个连接负载又很小的情况(电商网站)。


PGA的管理方式有两种:

1.      手动,手动的设置sort_area_size, hash_area_size, bitmap这三个区的大小;手动设置不够灵活,常常出现内存不够或者内存空余的情况。

Oracle有两大dbf文件:一是临时(temp)dbf,二是数据(data)dbf。如果设定sort_area_size的大小是2M,当需要排序的数据量大于2M时,oracle就会启用临时dbf,先把一部分数据写入临时dbf,对另一部分数据进行排序,排序完成之后再把临时dbf的数据读入进行排序。这有点像swap内存区。不需要临时dbf时叫做完全内存排序,使用临时dbf时叫做磁盘排序。磁盘排序的速度很慢。

2.      自动,只需给所有的server process分配一个大的PGA空间就可以了。每个server process建立的时候都会从PGA里申请一块空间,不够用时会接着申请,用完就释放。每个server process获得的空间是弹性的。

 

设置PGA为自动管理:

SQL> alter system set workarea_size_policy=auto scope=both;

 

System altered.

设置总的PGA大小:

SQL> alter system set pga_aggregate_target=512m scope=both;

 

System altered.

OLTP系统中,一般而言PGA大小为物理内存的80%再乘以20%

OLTPPGA_aggregate_target =(total_mem * 80%) * 20%

DSS系统中,由于会运行一些很大的查询,典型的PGA内存最多分配70%的内存。

DSSPGA_aggregate_target =(total_mem * 80%) * 50%

 

查看PGA的大小:

SQL> show parameter pga;

 

NAME                                 TYPE

--------------------------------------------------------------------

VALUE

------------------------------

pga_aggregate_target                 big integer

512M

查看server process每个区的大小:

SQL> showparameter area;

 

NAME                                 TYPE

--------------------------------------------------------------------

VALUE

------------------------------

bitmap_merge_area_size               integer

1048576

create_bitmap_area_size              integer

8388608

hash_area_size                       integer

131072

sort_area_retained_size              integer

0

sort_area_size                       integer

 

NAME                                 TYPE

--------------------------------------------------------------------

VALUE

------------------------------

65536

workarea_size_policy                 string

AUTO
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值