ITPub博客

首页 > Linux操作系统 > Linux操作系统 > ORACLE的并行处理之配置

ORACLE的并行处理之配置

原创 Linux操作系统 作者:Byte_X_ 时间:2009-12-17 15:17:29 0 删除 编辑

--配置
 parallel_min_servers:实例启动时从属进程的数量,默认为0,
 parallel_max_servers: 池中从属进程的量大数。一般设为CPU 的CORE个数(cpu_count参数值)8至10倍


--显示池的信息
 SELECT *
    FROM v$px_process_sysstat
    WHERE statistic LIKE 'Servers%';
 
 
--使用large_pool来为从属进程分配内存
 1. 在9i中设置 parallel_automatic_tuning=true
 2. 在10g中设置 sga_target 非零。
 3. 在11g中设置了memory_target 非零。
 注:大池是专门用来存放不可重遥的内存结构的。如果不启动大池,会从共享池(shared pool)中来分配这部分内存。
   显然在大池分配并行内存比在共享池中合适得多。
 large_pool_size >= parallel_max_servers^2 * parallel_execution_message_size*3;
 
--表和索引的并行度
 1.在创建时设置
  create table t (id number,pad varchar2(100)) parallel 4;
  create index t_ind on t(in) parallel 4;
 2.创建后修改并行度
  alter table t parallel 4;
  alter index t_ind parallel 4;

 3.禁用并行处理
  alter table t parallel 1;
  alter index i parallel 1;
  或
  alter table t noparallel;   
  alter index t noparallel;
 
 注:dba_tables 表的DEGREE字段记录了表的并行度
 
--当并行度请求得不到满足时的处理。
 当池中的从属进程数不能满足并行度的要求时 有两种可选性:一是降级处理,二是的返回一个错误(ORA-12827)。
 通过参数 parallel_min_percent来设置。默认为 "0"
  a.等于 "0" 时:永远不返回错误。 池中取尽可能多的从属进程。进行处理,如果所剩的从属进程数小于2,就相当于串行执行  
  b.在 "1"~"99" 时:按比例降级 池中的从属进程数据必需要大于 并行度*(parallel_min_percent/100) 的个数,不然返回ORA-12827
  c.等于100 时:永远不降级,池中的从属进程数不能满足并行度的要求时 返回ORA-12827.

 parallel_adaptive_multi_user 也会影响到服务器进程的从属进程数。
 
 FALSE: 如果池没有耗尽,请求的从属进程数会根据parallel_min_percent设置原则来分配从属进程数。9i的默认值。
 TRUE : 随着从属进程的数量的增加,限使池中有足够的从属进程数,并行度也会被自动降级。10g的默认值。
 
 因为设置true时不能发挥池的最大性,同时可能造成语句的串行处理所以建议将
  parallel_adaptive_multi_user设为false

--查询并行的降级统计信息
 SQL>SELECT  name,value
   from v$sysstat
   where name like 'Parallel operations%';

来自 “ ITPUB博客 ” ,链接:https://blog.itpub.net/22782597/viewspace-622714/ ,如需转载,请注明出处,否则将追究法律责任。

请登录后发表评论 登录
全部评论

注册时间:2009-10-28

  • 博文量
    22
  • 访问量
    28487