暂无图片
Oracle并行有有哪些触发的方式
我来答
分享
西瓜你个吧啦
2024-05-28
Oracle并行有有哪些触发的方式
出题:活动会话突然彪高243,然后持续一分钟不到就下来了。查看历史会分析,发起者是一个查询服务,显示P1TEXT sleeptime/senderid,程序说自己没开并行,sql显示没有加hint。


select SAMPLE_ID,count(*) from v$active_session_history group by SAMPLE_ID order by 2 desc
select * from v$active_session_history where SAMPLE_ID='268266729';
select * from v$active_session_history where SESSION_ID=177 and SESSION_SERIAL#=24875;
select * from v$sql where sql_id='80qjf2m04utnr';


分析原因并给出相应语句,你对Oracle并行的理解,什么情况触发

我来答
添加附件
收藏
分享
问题补充
4条回答
默认
最新
周伟

查看查询表的  degree 参数是多少,这个大多都是由于创建索引的时候用了并发,然后创建完成之后没有设置noparallel,那么以后涉及到这个表的查询,就会自动开启并发执行。

另外看看服务器上面的parallel 相关的参数是什么,比如 parallel_degree_policy,这个默认是manual 的,如果是设置成了auto,就会开启自动DOP特性。

暂无图片 评论
暂无图片 有用 0
打赏 0
暂无图片
徐孝亮

先看下执行计划,不一定和并行有关

暂无图片 评论
暂无图片 有用 0
打赏 0
lianR

这是一组Oracle数据库的查询语句,用于分析数据库的活动会话历史。以下是每个查询语句的解释:

1.  `select  SAMPLE_ID,count(*)  from  v$active_session_history  group  by  SAMPLE_ID  order  by  2  desc`:这个查询语句用于查看活动会话历史中每个样本ID的数量,并按数量降序排列。

2.  `select  *  from  v$active_session_history  where  SAMPLE_ID='268266729'`:这个查询语句用于查看样本ID为'268266729'的活动会话历史的所有信息。

3.  `select  *  from  v$active_session_history  where  SESSION_ID=177  and  SESSION_SERIAL#=24875`:这个查询语句用于查看会话ID为177且会话序列号为24875的活动会话历史的所有信息。

4.  `select  *  from  v$sql  where  sql_id='80qjf2m04utnr'`:这个查询语句用于查看sql_id为'80qjf2m04utnr'的SQL语句的所有信息。

通过这组查询语句,可以分析出活动会话突然增高的原因,以及这个现象持续的时间。同时,也可以查看发起这个现象的查询服务的信息,以及相关的SQL语句。

暂无图片 评论
暂无图片 有用 0
打赏 0
lianR

从你的描述来看,这个问题可能是由于Oracle的并行处理机制导致的。虽然你的程序没有开启并行处理,但是Oracle在某些情况下会自动启用并行处理,以提高查询性能。这种情况通常发生在处理大量数据的查询中。

Oracle并行处理是指Oracle数据库在执行查询时,会将查询任务分解为多个子任务,然后并行执行这些子任务,以提高查询性能。并行处理可以显著提高处理大量数据的查询的性能,但是也会增加系统的负载,可能导致系统资源的短时间内的高度使用。

在你的情况中,可能是由于查询服务处理的数据量较大,触发了Oracle的并行处理机制,导致活动会话数突然增加。但是由于并行处理可以提高查询性能,所以活动会话数在一分钟内就下来了。

解决方案:
你可以通过设置参数parallel_degree_policy来控制Oracle的并行处理机制。如果你不希望Oracle自动启用并行处理,可以将此参数设置为MANUAL。例如:

ALTER  SYSTEM  SET  parallel_degree_policy=MANUAL;

对于已经存在的SQL,你可以使用no_parallel  hint来禁用并行处理。例如:

SELECT  /*+  no_parallel(t)  */  *  FROM  t;

触发情况:
Oracle的并行处理机制通常在以下情况下触发:

1.  查询处理的数据量较大。
2.  查询涉及到的表或索引的大小超过了参数parallel_min_threshold的值。
3.  执行计划中包含了并行操作,例如全表扫描或者索引快速全扫描。

停止输出

暂无图片 评论
暂无图片 有用 0
打赏 0
回答交流
Markdown


请输入正文
提交
相关推荐
接到一个任务。阿里云部署ORACLE 11GR2和 Oracle RAC。求大神赐予一份胎教文档
回答 2
云服务器搞RAC,没啥意义。不如单机ADG
主备的切换,主库在跑的job,而且是实时跑的。当把备库切换成主库? 新的主库job会继续跑吗?
回答 4
新主库job到点自然会跑,不确定的话自己搭个简单的job验证一下呗
数据库大量的pga memory operation 等待事件是什么原因造成的,怎么解决这个问题
回答 1
“PGAmemoryoperation”isjustannewwaiteventtoexposeapriorunmeasuredwaitinearlierversionsofthedatabase.H
达梦迁移工具具体怎么使用啊,是DM7=>oracle,数据源和目的中,信息填写有什么要求啊?
回答 1
简单给你说一下过程:打开达梦迁移工具》新建工程》然后左边树形栏会显示你新建的工程,在数据类型映射里面,你可以定义dm7Oracle迁移的映射关系,调度和作业里面你可以建相应的调度和作业,然后还有个迁移
请教个问题 postgresql11和13版本能做replication嚒 master是11.4 slave是13.3版本 还是需要master和slave是相同版本的 谢谢!
回答 1
PG流复制要求PostgreSQL大版本必须一致,逻辑复制支持跨PostgreSQL大版本
ORACLE 11G RAC 的主机名不能是大写?
回答 2
已采纳
规定的是不能大写的
Oracle一般做同步库用什么工具或者软件?
回答 7
做dg吧,简单可用
oracle 迁移到mysql,有啥好用的工具给推荐一下,最好是免费的
回答 1
这个问题我也想知道~,已知目前没有免费的方案,很多是涉及到字段类型转换调整等问题;阿里的数据传输服务DTS服务有类似功能,但使用案例不多;
Oracle审计疑问
回答 1
如果会话在操作之间断开并重新连接,每次新的会话开始时,相同的操作都会被视为新的操作并被记录下来,最好确认会话是否在执行操作之间断开并重连。
请问oracle压测有什么好用的工具吗?
回答 2
比较好的是benchmark。