Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1148840
  • 博文数量: 231
  • 博客积分: 2500
  • 博客等级: 少校
  • 技术积分: 2662
  • 用 户 组: 普通用户
  • 注册时间: 2009-11-03 16:35
个人简介

学无止境

文章分类

全部博文(231)

文章存档

2014年(7)

2013年(103)

2011年(11)

2010年(53)

2009年(57)

分类: Oracle

2013-10-11 14:02:53

与并行机制相关的参数分为三类
1.关于并行操作的资源限制的参数
2.影响资源消耗的参数
3.与IO相关的参数
 
关于并行操作的资源限制的参数:
这部分参数主要针对并行查询操作。
 
PARALLEL_MAX_SERVERS

设置并行执行最大可用进程数,该参数根据系统的CPU数量有一个默认值。
(DOP,Degree of Parallel)用户预期的并行度。
一般推荐根据运行情况来设置PARALLEL_MAX_SERVERS参数,公式如下:
    2 x DOP x NUMBER_OF_CONCURRENT_USERS
例如有4个用户同时运行并行查询,预期每个查询的并行度为8,那么PARALLEL_MAX_SERVERS就需要设置为64。
 
PARALLEL_MIN_SERVERS

设置数据库启动时,初始启动的并行进程数,默认值为0。
设置该值是为了减少内存碎片,以及更快地使用并行机制。
 
SHARED_POOL_SIZE

并行执行需要从共享池分配内存,如果内存不足,会报ORA-4031的错误。
可以用以下的sql检查当前共享池的剩余空间:
SELECT NAME, SUM(BYTES) FROM V$SGASTAT WHERE POOL='SHARED POOL' GROUP BY ROLLUP (NAME);
 
计算需要内存大小的公式:
对于SMP系统:
mem in bytes = (3 x size x users x groups x connections)
 
对于SMP的集群系统和MMP系统:
mem in bytes = ((3 x local) + (2 x remote)) x (size x users x groups)/ instances
 
SIZE = PARALLEL_EXECUTION_MESSAGE_SIZE
USERS = 同时进行并行操作的用户数
GROUPS = 每个查询,查询服务进程组的数量,对于简单的SQL语句,只有1个组,对于查询中包含子查询,就需要使用额外的组
CONNECTIONS = (DOP2 + 2 x DOP)
LOCAL = CONNECTIONS/INSTANCES
REMOTE = CONNECTIONS - LOCAL
 
PARALLEL_MIN_PERCENT

该参数和PARALLEL_MAX_SERVERS参数有关,指定了需要并行执行的最少进程数的百分比。
例如PARALLEL_MAX_SERVERS设置为10,PARALLEL_MIN_PERCENT设置为50,目前已经有其他会话执行并行使用了8个并行进程,现有用户希望用并行度8来执行SQL。那么所需的最少并行进程数为4,但是现在只有2个可用的并行进程,系统就会报ORA-12827的错误。
建议该参数保持默认值,0
 

影响资源消耗的参数:
这部分参数主要针对并行的DDL和DML操作。
 
PGA_AGGREGATE_TARGET
该参数同时影响着进程的内存和进程的数量。设置这一个参数就包含了hash area和sort area

PARALLEL_EXECUTION_MESSAGE_SIZE
该参数设置了用于并行执行消息的缓存大小,默认由操作系统指定,大约是2k。将该值设置得更大,也需要更多的共享池,通过使用更多的内存资源提高性能。
 
与IO相关的参数:

DB_CACHE_SIZE
当并行执行update,megrge,delete时,类似于OLTP系统做一批量的更新。

DB_BLOCK_SIZE
对于经常需要使用并行查询的数据库,在建立时最好使用8K或16K的数据块

DB_FILE_MULTIBLOCK_READ_COUNT
建议对于8K的数据库,设置为8,对于16K的数据库,设置为4

DISK_ASYNCH_IO和TAPE_ASYNCH_IO
建议这2个值都设置为TRUE

备注:
SMP的全称是"对称多处理"(Symmetrical Multi-Processing)技术,是指在一个计算机上汇集了一组处理器(多CPU),各CPU之间共享内存子系统以及总线结构。
MPP (Massively Parallel Processing),大规模并行处理系统,这样的系统是由许多松耦合的处理单元组成的,要注意的是这里指的是处理单元而不是处理器。每个单元内的CPU都有自己私有的资源,如总线,内存,硬盘等。在每个单元内都有操作系统和管理数据库的实例复本。这种结构最大的特点在于不共享资源。
 

阅读(942) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~