Chinaunix首页 | 论坛 | 博客
  • 博客访问: 338808
  • 博文数量: 94
  • 博客积分: 1500
  • 博客等级: 上尉
  • 技术积分: 1020
  • 用 户 组: 普通用户
  • 注册时间: 2010-05-11 09:23
文章分类
文章存档

2011年(76)

2010年(18)

分类: Oracle

2011-06-10 19:02:49

   今天在服务器上刚装好数据库,发现oracle进程有六十几个ora_p*_SID的进程,查了个资料才知道原来如此----这是并行执行的进程,对应的初始化参数是:PARALLEL_MAX_SERVERS
这个PARALLEL_MAX_SEVERS参数设置并行执行可用的最大进程数量,
该参数的缺省值如下得出:
对于9i
1.如果PARALLEL_AUTOMATIC_TUNING=FALSE
PARALLEL_MAX_SERVERS=5
2.如果PARALLEL_AUTOMATIC_TUNING=TRUE
PARALLEL_MAX_SERVERS=CPU_COUNT x 10

9i中PARALLEL_AUTOMATIC_TUNING默认为FALSE,所以PARALLEL_MAX_SERVERS默认为5

对于10g
1.如果PGA_AGGREGATE_TARGET >0
PARALLEL_MAX_SERVERS=CPU_COUNT x PARALLEL_THREADS_PER_CPU x 10
2.如果PGA_AGGREGATE_TARGET=0
PARALLEL_MAX_SERVERS=CPU_COUNT x PARALLEL_THREADS_PER_CPU x 5

PARALLEL_MAX_SERVERS参数主要用在OLAP数据仓库环境下(用于大量的并行查询),在一般的OLTP环境下,并不会用到太多的并行处理,可进一步将该参数减小至等于cpu数量。

我们服务器是16核的,我把它设置成16
alter system set PARALLEL_MAX_SERVERS=16 scope=both;
重启数据库后,发现这些进程不见了。
具体为什么还不知道,需要进一步深入.......
待后续
阅读(3529) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~