问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501
你好,欢迎来到懂视!登录注册
当前位置: 首页 - 正文

ORA-12805: 并行查询服务器意外停止 ORA-12805: parallel query server died unexpectedly

发布网友 发布时间:2022-05-03 21:53

我来回答

2个回答

懂视网 时间:2022-05-04 02:14

Oracle 并行查询 parallel Query 81 53,5297P_Base_Day_I_NewTaredUser2009-06-25 17:28:562009-06-25 18:24:2155insert成功base 82 53,5300P_BASE_DAY_I_NEWTAREDUSER_test2009-06-25 17:29:312009-06-25 17:54:2124insert成功base 这是两个同样的过程 访问

Oracle 并行查询 parallel Query


81 53,5297 P_Base_Day_I_NewTaredUser 2009-06-25 17:28:56 2009-06-25 18:24:21 55 insert 成功 base
82 53,5300 P_BASE_DAY_I_NEWTAREDUSER_test 2009-06-25 17:29:31 2009-06-25 17:54:21 24 insert 成功 base

这是两个同样的过程 访问6千万的数据进行inner join 统计 前个花了55分钟 后一个花了24分钟

insert /*+parallel(t_newtraed_test,4) */ into t_newtraed_test
select b.addtime,0,b.username,sysdate,0,c.lotid,0,c.playid,0,0,sysdate
from
(
select username,min(addtime) as addtime
from
(
select /*+ PARALLEL(x, 5) PARALLEL(z, 5)*/ x.F_username as username ,x.f_addtime as addtime
from T_Gather_ProUser x
INNER JOIN t_gather_project z ON x.f_projectid = z.f_id and x.f_lotteryid=z.f_lotteryid
....

对表可以

ALTER TABLE BA.P_ADMIN PARALLEL ( DEGREE Default INSTANCES Default );

这个由ORACLE 自己决定

可经常报 ORA-12801: 并行查询服务器 P029 中发出错误信号
ORA-00018: 超出最大会话数

由此可见 它开了太多的会话数。

下面些资料可供参考

由OPQ划分的表

一旦表被划分成块,Oracle启用并行的子查询(有时称为杂务进程),每个子查询同时读取一个大型表中的一块。所有子查询完毕以后,Oracle将结果会传给并行查询调度器,他会重新安排数据,如果需要则进行排序,并且将结果传递给最终用户。OPQ具有无限的伸缩性,因此,以前需要花费几分钟的全表检索目前的响应时间却不到1秒。

OPQ严重依赖于处理器的数量,通过并行运行之所以能极大地提升全表检索的性能,其前提就是使用了N-1个并行进程(N=Oracle服务器上CPU的数量)。

必须注意非常重要的一点,即Oracle9i能够自动检测外部环境,包括服务器上CPU的数量。在安装时,Oracle9i会检查服务器上CPU的数量,设置一个名为cpu_count的参数,并使用cpu_count作为默认的初始化输入参数。这些初始化参数会影响到Oracle对内部查询的处理。

下面就是Orale在安装时根据cpu_count而设置的一些参数:

fast_start_parallel_rollback
parallel_max_servers
log_buffer
db_block_lru_latches

参数

让我们进一步看看CPU的数量是怎么影响这些参数的。

参数fast_start_parallel_rollback

Oracle并行机制中一个令人兴奋之处是在系统崩溃时调用并行回滚得能力。当Oracle数据库发生少有的崩溃时,Oracle能自动检测未完成的事务并回滚到起始状态。这被称为并行热启动,而Oracle使用基于cpu_count的fast_start_parallel_rollback参数来决定未完成事务的秉性程度。

并行数据操纵语言(DML)恢复能够在Oracle数据库崩溃后极大地加快其重新启动的速度。此参数的默认值是系统CPU数量的两倍,不过一些DBA们认为应该将这个值设置为cpu_count的四倍。

参数parallel_max_servers_parameter

Oracle一个显著的加强是自动决定OPQ并行的程度。由于Oracle清晰服务器中CPU的数量,他会自动分配合适的子进程的数量来提升并行查询的响应时间。当然,会有其他的外部因素,比如表的划分及磁盘输入/输出子系统的布局等,不过根据cpu_count来设置parallel_max_servers参数将给Oracle一个合理的依据来选择并行的程度。

由于Oracle的并行操作严重依赖服务器上CPU的数量,parallel_max_servers会被设置成服务器上CPU的数量。如果在一台服务器上运行多个实例,则默认值太大了,会导致过度的页面交换和严重的CPU负担。并行的程度还依赖于目标表中分区的数量,因此parallel_max_servers应该设置成足够大以允许Oracle为每个查询选择最佳数量的并行子查询。

参数log_buffer

参数log_buffer定义了供即刻写入redo日志信息的保留RAM的数量,这个参数受cpu_count的影响。Oracle推荐log_buffer最大为cpu_count乘以500KB或128KB。CPU的数量对于log_buffer来说非常重要,因为Oracle会生成多日志写入(LGWR)进程来异步释放redo信息。

log_buffer是Oracle中最易误解的的RAM参数之一,通常存在下面几个设置错误:

log_buffer被设置得太高(例如,大于1MB),这回引起性能问题,因为大容量的结果会使得写入同步进行(例如,日志同步等待事件非常高)。log_buffer不是db_block_size的倍数。在的Oracle9i中,log_buffer应该是2048字节的倍数。

参数db_block_lru_latches

LRU锁的数量是在Oracle数据库内部用来管理数据库缓冲的,这严重依赖于服务器上CPU的数量。

非常多聪明的Oracle9i的DBA使用多冲数据缓冲(例如db_32k_cache_size),他们推荐将这个未公开声明的参数重设置为默认的最大值。db_block_lru_latches参数在Oracle8i中使用得非常多,不过在Oracle9i中变成了一个未公开声明的参数,因为Oracle目前根据数据库拥有的CPU数量设置了一个合理的默认值。

db_block_lru_latches默认被设置为服务器上cpu_count的一半(例如服务器上只有一个Oracle数据库)。Oracle推荐db_block_lru_latches千万不要超过cpu_count的两倍或三倍,或db_block_buffers的五十分之一。

如果使用多缓冲池则这种计算方法有一个问题,因为不能控制分配给每个数据缓冲池的锁的数量。如果db_writers参数大于1,则默认值或许显得太小。

加强服务器

Oracle数据库总是在提升性能,根据外部服务器环境检测cpu_count和基本参数设置的能力对于Oracle软件来说是个重要的加强。

随着更多的Oracle系统转移到SMP上来,当客户要采取增强措施并将众多的数据库转移到拥有32个或64个CPU的巨大服务器上来的时候,这些参数显得愈发重要。

热心网友 时间:2022-05-03 23:22

定义装载执行语句的变量长度不够了
声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。
E-MAIL:11247931@qq.com
广西浦北县民政局今年春节几时才放假? 怎样在Excel中画柏拉图的二八线? 郎酒鉴定真假要去哪里,鉴定方法分享 郎酒酒瓶有收藏价格吗,收藏的注意事项有哪些?(郎酒瓶子值钱吗) 郎酒酒瓶有收藏价值吗,收藏酒瓶要注意什么(郎酒瓶子值钱吗) 《战舰少女R》平海值得练吗介绍_《战舰少女R》平海值得练吗是什么_百... 黄铜镀金和钛钢镀金有啥区别 北部湾大学研究生有哪些专业 北部湾大学的研究生文评在全国的含金量重吗 极品飞车9追击的圆圈是 一个晚上,我同时遇上了天使与恶魔··· 传说中的天使分别是那些哟!有没有人可以告诉我呀!还有与天使相对应的恶魔又有那些呢? 她是天使?还是恶魔? 天使与恶魔的传说故事是什么? 人是天使化身或是恶魔化身??? 变态恶魔郑民生落网记:白衣天使化身恶魔,冲进小学砍死8人,后来怎样了? 天使和恶魔的职位从大到小 我愿身化恶魔与天使对立与地狱同在与孤独相伴是什么意思? 恶魔化作天使来爱你小说txt全集免费下载 Oracle数据库中删除一个大表的内容而不删除表结构的命令是什么 oracle 怎么删除数据库里面的所有用户下的数据文件 Oracle数据库中的DBF文件不能物理删除是为什么 Oracle 数据库 如何物理删除 db_recovery_file_dest 的内容 在oracle数据库中删除表后生成的文件怎么删除 mysql 5.7.18 什么时候发布的 如何打包发布一个带有MySQL数据库的软件 MySQL 5.0,MySQL 5.1,MySQL 5.5分别是在什么时间、什么背景下发布的? mysql服务器集中在一个CPU内核上跑 blob类型 text哪个性能更好 mysql:多表,union,count,group by的问题,求教 oracle large pool 什么情况下使用 oracle数据库 Remote error: ORA-00600: 内部错误代码, 参数: [qerpxInitialize], oracle 的workload到底是什么意思 mysql数据库查询语句求助! sql server 在测试循环语句,除了报错的循环内循环的怎么写? 关于SQLServer2005写循环语句的问题 SQL Server 2008中,while后面是不可能实现的条件会怎么样? 求助SQL SERVER循环问题 sql server 一条语句循环修改多个值 oracle数据库启动的疑问? SQLserver 树类型,遍历问题,谢谢 jsp树形菜单节点排序问题。。 对二叉排序树进行______遍历,可得到按关键字从小到大的排列的节点序列 C# 树种节点如何按编号排列 在一棵二叉排序树中,每个分支结点的右子树上所有结点的值一定 该结点的值. 先序遍历一棵二叉排序树所得的结点访问序列不可能是按值递增序列. 一个二叉排序树用什么方法可以使得节点成递增序列 系统按照什么顺序访问二叉树的各个节点 已知T为一棵二叉排序树设计算法按递减次序打印各节点的值 如何在sqlserver 的函数或存储过程中抛出异常。
  • 焦点

最新推荐

猜你喜欢

热门推荐