我负责处理的应用程序之一是每隔x秒检查一次Oracle DB表,以查看是否有新数据要处理(其他实时应用程序正在填充该html" target="_blank">数据)。
我们新的客户业务流程迫使我们的实时性在同一时间(比如说10000)同时每天填充几次记录来填充该表。下次我的应用程序检查是否有任何要处理的内容时,遇到10
000条记录并尝试对其进行处理。
它的设计不是很好,而且扩展性还不够好。快速解决方案是限制该应用程序从Oracle获取的记录数量,下次它将再选择50条(或任何其他内容),依此类推。
如何在Oracle SQL中限制返回记录的数量?订单很重要!
select *
from cool_table where date >= to_date('200901010000', 'YYYYMMDDhh24mi')
order by seq_nr, entry_dts;
select * from
(select c.* from cool_table c
where date >= to_date('200901010000', 'YYYYMMDDhh24mi')
order by seq_nr, entry_dts)
where rownum < 50
您需要确保在行数过滤之前完成排序(否则将使用找到的前50行,然后对它们进行排序)
问题内容: 有没有一种方法可以使Oracle查询的行为类似于包含MySQLlimit子句的行为? 在MySQL中,我可以这样做: 以获得第21到30行(跳过前20行,给出下10行)。这些行是在后面选择的,因此它实际上按字母顺序从第20个名称开始。 在Oracle中,人们唯一提到的是rownum伪列,但是它在之前 被评估,这意味着: 将返回一个随机的十行,按名称排序,这通常不是我想要的。它还不允许指
问题内容: 我有一个具有相似结构和数据的示例表,如下所示: 表在每个学生出现的所有科目中都有每个学生的合并标记。 请帮助我,编写一个查询以提取每个学生( 不分学科/其他学生 )获得的MAXIMUM分数,如下所示: 按S_Name和Max(MARK_Value)分组 问题答案: 使用窗口功能 或者您可以使用相关的子查询
问题内容: 我正在使用Oracle 11g标准版。 我想将用户正在执行的所有SQL查询记录到表中。 如何才能做到这一点? 问题答案: 如果您使用的是现代版本的数据库(9i或更高版本),并且您拥有企业版许可证,则可以使用细粒度审核。它使我们能够通过已定义的策略以非常低的粒度审核用户查询。 要捕获SQL文本并绑定变量,您需要在添加FGA策略时适当设置AUDIT_TRAIL参数。 了解更多。 “我使用的
在MariaDB数据库中,使用语句和子句从表中检索一个或多个记录。 语法: 示例1: 以降序检索记录: 使用语句并带有子句查询表中的数据。结果列的值按降序显示,为。参考如下语句 - 执行上面查询语句,得到以下结果 - 示例2: 按列的值升序检索记录: 执行上面查询语句,得到以下结果 - 示例3:分页 在应用程序中,由于数据记录太多,不能全在一个页面中全部显示,我们经常要使用分页来显示。假设每页显示
问题内容: 我非常确定我们不能将LIMIT子句用于我想做的事情-因此想确定是否还有其他方法可以实现此目的。 我有一个表,其中捕获了哪个用户访问了哪个商店。每次用户访问商店时,都会在此表中插入一行。 一些领域是 shopping_id(primary key) store_id user_id 现在,我想要的是-对于给定的一组商店,找到访问该商店的最大次数的前5位用户。 我可以一次在1个商店中进行以