PX Deq Credit: send blkd 等待事件
2015-10-19 15:34
246 查看
这个等待事件并不是oracle常见的等待之一。
--查看该等待事件属性
SELECT * FROM V$EVENT_NAME A WHERE A.NAME = 'PX Deq Credit: send blkd';
--等待时间次数等信息
SELECT a.* FROM V$SYSTEM_EVENT A WHERE A.EVENT = 'PX Deq Credit: send blkd';
--正在等待此类等待事件的sql
SELECT B.SID, B.SQL_ID, C.*, A.*
FROM V$SESSION_WAIT A, V$SESSION B, V$SQLAREA C
WHERE A.EVENT = 'PX Deq Credit: send blkd'
AND A.SID = B.SID
AND B.SQL_ID = C.SQL_ID
order by b.sql_id;
--查看这些sql的执行计划
select * from v$sql_plan a where a.sql_id = 'fj8m5hpfn7m00';
select dbms_xplan.display_cursor('fj8m5hpfn7m00') from dual;
select * from table(dbms_xplan.display_awr('fj8m5hpfn7m00'));
这些sql的一个共性就是并行执行,由于对这个等待事件不了解,找了一些资料也多描述与并行执行有关。
oracle的并行度的优先级:Hint>alter session force parallel>表和索引上的设定>系统参数。
这些sql都没有使用hint,对于alter session 查看了近期alert_log并没有发现,那么问题就往下定位到表和索引的degree上了
--查看表和索引的并行度
select distinct a.degree from dba_tables a where a.owner = '????';
select 'alter index '||c.owner||'.'||c.index_name||' parallel (degree 1);' from dba_indexes c where c.owner in (
select distinct a.owner
from dba_indexes a
where a.degree <> 1
and a.owner in (select username from dba_users b where b.user_id >= 57))
and c.degree <> 1
and c.index_type = 'NORMAL';
好了,问题就出在索引上,好多索引的并行度不是1,问题要追溯到几天前重建索引的时间用了并行
alter index index_name rebuild parallel 5;
原来重建索引时使用的并发度,在索引上自动也设置了该索引的并发度
select degree,a.* from user_indexes a
--查看系统的并行功能
select * from v$option where upper(parameter) like 'PARALLEL%';
--查看使用并行的进程
select * from v$px_session;
--查看与oracle 并行有关的参数,一搬不建议修改这些参数
ect * from v$spparameter a where upper(a.name) like '%PARALLEL%'
--查看该等待事件属性
SELECT * FROM V$EVENT_NAME A WHERE A.NAME = 'PX Deq Credit: send blkd';
--等待时间次数等信息
SELECT a.* FROM V$SYSTEM_EVENT A WHERE A.EVENT = 'PX Deq Credit: send blkd';
--正在等待此类等待事件的sql
SELECT B.SID, B.SQL_ID, C.*, A.*
FROM V$SESSION_WAIT A, V$SESSION B, V$SQLAREA C
WHERE A.EVENT = 'PX Deq Credit: send blkd'
AND A.SID = B.SID
AND B.SQL_ID = C.SQL_ID
order by b.sql_id;
--查看这些sql的执行计划
select * from v$sql_plan a where a.sql_id = 'fj8m5hpfn7m00';
select dbms_xplan.display_cursor('fj8m5hpfn7m00') from dual;
select * from table(dbms_xplan.display_awr('fj8m5hpfn7m00'));
这些sql的一个共性就是并行执行,由于对这个等待事件不了解,找了一些资料也多描述与并行执行有关。
oracle的并行度的优先级:Hint>alter session force parallel>表和索引上的设定>系统参数。
这些sql都没有使用hint,对于alter session 查看了近期alert_log并没有发现,那么问题就往下定位到表和索引的degree上了
--查看表和索引的并行度
select distinct a.degree from dba_tables a where a.owner = '????';
select 'alter index '||c.owner||'.'||c.index_name||' parallel (degree 1);' from dba_indexes c where c.owner in (
select distinct a.owner
from dba_indexes a
where a.degree <> 1
and a.owner in (select username from dba_users b where b.user_id >= 57))
and c.degree <> 1
and c.index_type = 'NORMAL';
好了,问题就出在索引上,好多索引的并行度不是1,问题要追溯到几天前重建索引的时间用了并行
alter index index_name rebuild parallel 5;
原来重建索引时使用的并发度,在索引上自动也设置了该索引的并发度
select degree,a.* from user_indexes a
--查看系统的并行功能
select * from v$option where upper(parameter) like 'PARALLEL%';
--查看使用并行的进程
select * from v$px_session;
--查看与oracle 并行有关的参数,一搬不建议修改这些参数
ect * from v$spparameter a where upper(a.name) like '%PARALLEL%'
相关文章推荐
- iOS Provisioning Profile(Certificate)与Code Signing详解
- enumerateObjectsUsingBlock的使用问题记录
- java中super和this关键字解析
- 数据库设计原则
- psd via fft and pwelch
- 处理机调度
- C++编程注意事项
- iOS navigationBar导航栏底部与self.view的分界线的隐藏
- 中文乱码的原因及解决方法
- 滚轮事件的防冒泡、阻止默认行为的代码(效果是:只让当前div滚动,连当前文档都不滚动的效果)
- 论实践和认识的关系--来自生活体验和感悟
- android 线程初识
- 错误代码:1100 Table 't_depart_info' was not locked with LOCK TABLES的解决方法
- ZigBee使用Z-Stack协议栈时如何关闭ACK验证
- AIX下取前一天时间
- php模拟post提交数据
- Java基础知识学习(九)
- 浅谈3D Touch 在Xamarin.iOS上的应用
- 如何对map中的value进行排序
- Unity3d中BlinnPhong光照模型注解