首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    使用 Order by 与 rownum SQL 优化案例一则

    这是某客户AWR报告中的一个TOP SQL,执行时间8.8小时(也有执行12.7小时报错退出的情况) SELECT * FROM ( SELECT rownum num ,t.* FROM TI_BI_CAMPN_USERORDER_TEMP...'0' OR oper_type = '2' OR (oper_type = '1' AND end_date <= add_months(trunc(sysdate, 'mm'), 1)) ORDER...小结: order by 与 rownum 搭配使用时,可以创建谓词字段与order by字段上的联合索引(本例不可,因为有or和不对称的谓词条件);或者在大部分数据都符合条件的情况下,创建order...如果这个SQL执行频率低,也可以选择不创建索引,使用并行加全表扫描来提高响应速度,使用下面的hint: SELECT * FROM ( SELECT /*+ full(t) parallel(4) */rownum...OR oper_type = '2' OR (oper_type = '1' AND end_date <= add_months(trunc(sysdate, 'mm'), 1)) ORDER

    43810

    oracle基础|oracle排序用法|order by用法|where用法

    目录 前言 1、Order by 子句的使用 2、Where子句的使用 ---- 前言 前面给大家讲解了oracle的基础用法,大家可以点击这里回顾一下:oracle基础|oracle的认知|Select...用法详解 然后在文末,也顺便给大家简单的提及了order by和where的用法,这篇文章就给大家详细的介绍一下order by 和 where的用法 1、Order by 子句的使用 select...column.... from .... order by ... 1) Order by子句在整个 select语句中的位置: 始终位于最后 2) order by后可以跟什么...last note: 出现在order by子句之后的列,不一定出现在select子句中。...日期在Oracle里有特定的格式,’DD-MON-YY’(具体看日期的显示格式), 否则作为一个字符串。 5) 几种常见的操作符: 1》逻辑比较操作符 = > = <= !

    3.6K10

    三种数据库sql分页查询

    select top total * from (select *,row_number() over(order by pid) rownum from person_base )x where...x.rownum>startNo startNo 是查询开始的行数,total 是要查询出多少条; 需要注意的是 row_number()函数后边必须有一个排序over(order by pid)...by pid) order by pid 根据别人测试的数据显示第二种方法比第一种方法效率要高 Oracle 数据库: Oracle 实现分页需要用到伪列rownum select * from...1) * pageSize); pageNo 是第几页 pageSize 是每页显示的个数 在Oracle中即有 rownum 又有row_number 但是两者是有区别的 1.rownum...的特性(没有1就不会有2,没有3……以此类推下去)决定的 rownum只能从1开始 2.使用rownum进行排序的时候是先对结果集加入伪列rownum然后再进行排序,而函数row_number()在包含排序从句后是先排序再计算行号码

    59230

    不同的SQL平台,如何取前百分之N的记录?

    BY ID DESC 结果如下: Oracle实现方法 Oracle有个ROWNUM伪列可以用来帮助我们计算前百分之N。...ROWNUM伪列的特点: ROWNUM是按照记录插入时的顺序排序的 ROWNUM并不实际存在,是对筛选后的结果集的一个排序,如果不存在结果集就不会有ROWNUM ROWNUM不能用基表名作为前缀 在使用...BY ID DESC ) WHERE ROWNUM < (SELECT COUNT(*)*0.1 FROM CITY) ) 注意:Oracle不支持子查询内ORDER BY,需要在外面再嵌套一层。...其实就是给排好序的集合添加一个自增长列,与OracleROWNUM有点类似 SELECT * FROM ( SELECT *, ROW_NUMBER() OVER(ORDER BY ID DESC)...总结 其中有涉及一些知识点,需要小伙伴们自己去进一步了解: SQL Server的TOP PERCENT OracleROWNUM,子查询排序 ROW_NUMBER() OVER() MySQL的变量

    17510
    领券