我正在执行一个 PL/SQL 块,它从显式游标更新一些行。声明游标的代码如下:
cursor DUP_SUBJECTS is
select *
from ODS_SUBJECT_D
WHERE SUBJECT_COD = ANY (SELECT SUBJECT_COD
FROM ODS_SUBJECT_D
WHERE END_DATE = TO_DATE ('31-12-9999','DD-MM-YYYY')
GROUP BY SUBJECT_COD, ROW_TYPE_DE
HAVING COUNT(*) > 1)
ORDER BY SUBJECT_COD, START_DATE;
正文中的第一条语句是DBMS_OUTPUT.PUT_LINE
为了通知它何时开始执行该块。上述脚本中的查询返回表中 2900000 行中的 20000 行。在脚本的声明块中似乎需要很长时间(30 分钟后它还没有打印消息)。
有什么建议可以优化脚本的性能吗?
谢谢,
安东尼奥