我每隔x秒就检查一次Oracle数据库表以查看是否有新数据要处理(其他实时应用程序填充它).
我们的新客户业务流程迫使我们实时填充此表,同时包含大量记录(比如10 000),但每天只有几次.下次我的应用程序检查是否有任何要处理的内容时,它会遇到10 000条记录并尝试处理它.
它设计得不是很好,而且它的规模还不够好.快速修复将限制应用程序从Oracle获取的记录数,下次它将选择另外50(或其他)等.
如何在Oracle sql中限制返回的记录数?订单很重要!
select * from cool_table where date >= to_date('200901010000','YYYYMMDDhh24mi') order by seq_nr,entry_dts;@H_404_8@
select * from (select c.* from cool_table c where date >= to_date('200901010000','YYYYMMDDhh24mi') order by seq_nr,entry_dts) where rownum < 50@H_404_8@您需要确保在rownum过滤之前完成排序(否则它将占用它找到的前50行,然后对它们进行排序)