暂无图片
返回数说广场
brucewoo
2024-07-14
大表更新SQL语句UPDATE /*+PARALLEL(2)*/T_TAB SET C_ID='TEST$PAL'; 如下并行更新描述正确的是? 先执行ALTER SESSION ENABLE PARALLEL DML;再执行上述UPDATE语句,执行过程中该SQL相关V$SESSION会话记录共5条,其中2条记录为并行更新写入进程(P00N)会话。 执行ALTER SESSION ENABLE/DISABLE PARALLEL DML;改变DML并行状态时,当前会话事务必须已处理完毕(已提交或已回滚) 新建会话并直接上述UPDATE语句,执行查询时全表扫描实现并行,但更新数据仍是串行。 当前会话无法在事务内重复执行上述UPDATE语句,每执行一次并行DML后,必须提交或回滚一次事务才可重复执行。 解析 PARALLEL DML未开启时,当前SQL执行期间共3个会话(当前应用会话+2个并行查询后台进程会话); PARALLEL DML开启时,当前SQL执行期间共5个会话(当前应用会话+2个并行查询后台进程会话+2个并行写入后台进程会话); 并行DML操作时,通过PX COORDINATOR协调器管理多个并行会话事务,重复执行PARALLEL大于1的带HINT SQL时,会报ORA-12838: 无法在并行模式下修改之后读/修改对象。 可通过V$PX_SESSION视图QCSID列获取协调会话与并发会话SID之间关系,每次DML执行并提交或回滚事务,V$PX_SESSION并行会话记录将消失
0
暂无图片 0
60
分享

评论

热门数说