ORA-01555 回滚段不够

章芋文 2019-06-19
43
0 0
摘要:为了避免这个错误,可以去掉子查询,加索引,分开删除等方式优化SQL,减少执行时间,另外还可以配合修改undo_retention参数,避免对业务造成影响。

问题描述

alert日志如下: 
Wed Jan 02 00:35:11 EAT 2013 
ORA-01555 caused by SQL statement below (SQL ID: 4gtf9gysfvu4j, Query Duration=8661 sec, SCN: 0x0bf4.60b0fa21): 
Wed Jan 02 00:35:11 EAT 2013 
DELETE /*+parallel(t,10)*/ FROM TF_R_UNICARD_PASWD T WHERE T.UNICARD_NO IN (SELECT C.UNICARD_NO FROM TE_R_CARD_TRANS C) 

专家解答

从日志来看,由于SQL(DELETE /*+parallel(t,10)*/ FROM TF_R_UNICARD_PASWD T WHERE T.UNICARD_NO IN (SELECT C.UNICARD_NO FROM TE_R_CARD_TRANS C))执行了8661s,查询undo_retention参数,只有900s,回滚段远远不够,导致01555报错。为了避免这个错误,可以去掉子查询,加索引,分开删除等方式优化SQL,减少执行时间,另外还可以配合修改undo_retention参数,避免对业务造成影响。

「喜欢文章,快来给作者赞赏墨值吧」

评论

0
0
Oracle
订阅
欢迎订阅Oracle频道,订阅之后可以获取最新资讯和更新通知。
墨值排行
今日本周综合
热门文章
近期活动
全部
相关课程
全部