ITPub博客

首页 > Linux操作系统 > Linux操作系统 > 越南OLAP系统并行查询出错问题

越南OLAP系统并行查询出错问题

原创 Linux操作系统 作者:wangsir_918 时间:2011-07-25 18:39:31 0 删除 编辑

越南决策系统一个查询sql,在跑的时候报:
ERROR at line 1:
ORA-12801: error signaled in parallel query server P041
ORA-00018: maximum number of sessions exceeded
背景介绍:一个表查询的sql,数据仓库星型模型,四张表关联,其中一张事实表开启了并使属性,并行度是default
这个错误从字面上意思是:到达了session的最大连接数,猜想应该是并行调度器在扩展并行进程的时候到达了processes定义的最大连接数导致的(在扩展到41的时候)
于是测试一下,采用hint,取消掉并行查询:
select /*+ no_parallel(stat_rewrite_common) */stat_dim_date.month_name as a1,
......
错误提示消失
查看系统参数:
SQL> show parameters processes
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
processes                            integer     200
SQL> show parameters parallel
NAME                                 TYPE        VALUE
------------------------------------ ----------- ------------------------------
parallel_max_servers                 integer     187
在允许的最大连接数200的前提下,设定的系统最大并行度为187,于是并行执行的时候很容易达到200,使得并行调度器无法再分配行的进程。
两个方案解决此故障:加大processes;减少parallel_max_servers
由于这是个在线系统,能避免不重启服务尽量避免,查看这两个参数属性:
SQL> select a.name,a.ISSYS_MODIFIABLE from v$parameter a where a.NAME in ('parallel_max_servers','processes');
NAME                                                                             ISSYS_MOD
-------------------------------------------------------------------------------- ---------
processes                                                                        FALSE
parallel_max_servers                                                             IMMEDIATE
还是修改parallel_max_servers吧。

总结:这算不算是一个oracle考虑不周的地方呢?

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

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

注册时间:2011-07-18

  • 博文量
    40
  • 访问量
    79184