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

学无止境

文章分类

全部博文(231)

文章存档

2014年(7)

2013年(103)

2011年(11)

2010年(53)

2009年(57)

分类: Oracle

2010-01-27 14:37:43

问题描述
----------
如何设置参数parallel_max_servers和parallel_min_servers
 
解决方法描述
--------------
通过设置以下的参数来定义全局并行级别:
parallel_max_servers - 如果设置为一个较大的数字,例如255,Oracle将通过计算服务器上处理器的数量以及每个处理器的线程数,将该参数限制为处理器的最大数量。
parallel_min_servers - 该参数的基本用途是告诉Oracle需要在启动实例时就启动多少个并行进程并保留在内存中,目的是为了每次查询创建进程的时间。
每个进程将从pga内存分配一个chunk,如果由于设置了parallel_min_servers参数,使得当实例启动时就将进程装载进内存,那么chunk就一直保持分配的状态直到实例关闭。chunk的属性是持久的。
与此相反的是,临时(temporary)进程和临时chunks。
例如:parallel_min_servers=10, parallel_max_servers=40,用户修改查询并行度:alter ... parallel 20。目前有10个持有进程和持久chunks。Oracle将自动启动额外的进程来满足用户的并行执行请求。额外的就是10个临时的进程和10个临时的chunks。如果用户的请求超过parallel_max_servers或系统的限制,alter命令将返回一个ORA错误。如果用户请求alter ... parallel 6,那么没有临时进程被创建,只使用持久的进程。
设置参数parallel_min_servers=0,所有的进程和chunks都为临时的。在操作结束后,使用的chunk将被回收。下次查询时将使用一个新请求的chunk。
阅读(10143) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~