免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 4089 | 回复: 6
打印 上一主题 下一主题

在线等:pc 里关于游标循环和parallel问题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-12-12 17:43 |只看该作者 |倒序浏览
select /*+full(a) parallel(a,10)*/ rowid MYROWID from table a

这里我想进行游标循环,delete table where rowid=chartorowid(:v1)
请问下,这里parallel有用吗?
而且在这个程序里面,一般情况下,需要处理的行数为800W左右,当进行到还剩下10W的时候,会报错
ORA-12801: error signaled in parallel query server P001
ORA-01555: sna
这个错误和parallel有关吗

论坛徽章:
0
2 [报告]
发表于 2006-12-12 22:18 |只看该作者
你所说的这个错误应该是因为 undo段不够的原因吧.和parallel无关,
不太清楚你所表诉的意思,
delete table where rowid=chartorowid(:v1)
parallel是无用的,我的理解 parallel 是把一个工作分成几部分,而使用rowid时,(当然,如果是range scan,是另外一回事),应该不会有帮助.
以上只是个人理解

论坛徽章:
0
3 [报告]
发表于 2006-12-13 10:22 |只看该作者
原帖由 dtsjs 于 2006-12-12 22:18 发表
你所说的这个错误应该是因为 undo段不够的原因吧.和parallel无关,
不太清楚你所表诉的意思,
delete table where rowid=chartorowid(:v1)
parallel是无用的,我的理解 parallel 是把一个工作分成几部分,而使用ro ...

如果抛开具体的问题,当需要进行游标循环时,对

select XX from table



select /*+full(a) parallel(a,6)*/ XX from table a

声明游标,然后取游标数据,效果一样吗?

回到正题,错误是说的回滚段不足,但是这个错误是因为这样做(用parallel)才导致要占很大回滚段还是这个问题就没有可以不产生这种错误的方法呢?谢谢

论坛徽章:
0
4 [报告]
发表于 2007-09-18 09:35 |只看该作者
这个问题提的蛮有深度啊
PARALLEL多个进程会影响回滚段吗?

论坛徽章:
0
5 [报告]
发表于 2007-09-18 09:38 |只看该作者
分阶段提交,这么多数据不能放在一个Trans中来提交。

parallel对undo是会有影响,但主要原因还是trans中提交的数据太多。

论坛徽章:
0
6 [报告]
发表于 2007-09-18 10:08 |只看该作者
谢谢 numenhuang
这段时间因为优化遇到了一些奇怪的问题
select /*+PARALLEL(table1,10)*/  acctid
from table1 a
where partition_id=substr(‘200707’,5,2)
and col2=’200707’
and col1='0';

比较

select /*+PARALLEL(a,10)*/  acctid
from table1 a
where partition_id=substr(‘200707’,5,2)
and col2=’200707’
and col1='0';

好像只有下面的语句用到了PARALLEL,大家的感觉是好像hint中必需使用表的别名?
是这样的吗?还是因为其它原因?

论坛徽章:
0
7 [报告]
发表于 2007-09-18 10:11 |只看该作者
原帖由 sunway1016 于 2007-9-18 10:08 发表
谢谢 numenhuang
这段时间因为优化遇到了一些奇怪的问题
select /*+PARALLEL(table1,10)*/  acctid
from table1 a
where partition_id=substr(‘200707’,5,2)
and col2=’200707’
and col1='0';

比较 ...


select /*+PARALLEL(table1,10)*/  acctid
from table1 a
where partition_id=substr(‘200707’,5,2)
and col2=’200707’
and col1='0';

这里如果定义了表的别名,那么hints就必须用别名
否则可以用表名,但是不能带schema名
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP