我每隔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;
Gary Myers.. 15
select * from (select c.* from cool_table c where date >= to_date('200901010000', 'YYYYMMDDhh24mi') order by seq_nr, entry_dts) where rownum < 50
您需要确保在rownum过滤之前完成排序(否则它将占用它找到的前50行,然后对它们进行排序)
select * from (select c.* from cool_table c where date >= to_date('200901010000', 'YYYYMMDDhh24mi') order by seq_nr, entry_dts) where rownum < 50
您需要确保在rownum过滤之前完成排序(否则它将占用它找到的前50行,然后对它们进行排序)