我正在执行一个 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 分钟后它还没有打印消息)。
有什么建议可以优化脚本的性能吗?  
谢谢,
安东尼奥