1.表中字段自关联与分析函数的性能比较,自关联需要扫描表两次,分析函数扫描一次即可

----自关联
select v1.proj_id,v1.proj_start,v1.proj_end
from v v1,v v2
where v1.proj_start=v2.proj_end ----分析函数
select proj_id,proj_start,proj_end
from (select proj_id,proj_start,proj_end,
lead(proj_start) over(order by proj_id) nproj_start
from v)
where nproj_start = proj_end

上述处理方式稍作修改,也可以用于计算用户登录的时间间隔, lead(xxx) over(partition user order by xxx),先按照用户进行分区

2.连续的时间段合并处理,求解合并后的时间区间。

select groupId,min(proj_start),max(proj_end)
from
(select proj_id,proj_start,proj_end,sum(status) over(order by proj_id) groupId
(select proj_id,proj_start,proj_end,
case when lag(proj_end) over(order by proj_id)=proj_start
then 0 else 1 end status
from v)
) group by groupId order by 1

3.Lag和lead是一种连续数据处理函数,对于数据时区间内的判断则需要between的方式来判断

with x0 as
(select id,sdate,edate
max(edate) over (order by sdate rows between unbounded preceding and 1 preceding) as medate
from b),
x1 as
(select sdate,edate,medate,case when medate>sdate then 0 else 1 end as status from x0),
x2 as
(select sdate,edate,sum(status) over(order by sdate) as groupId from x1)
select groupId,min(sdate),max(edate)
from x2
group by groupId
order by groupId

Oracle Sql优化之范围处理的更多相关文章

  1. Oracle SQL优化[转]

    Oracle SQL优化 1. 选用适合的ORACLE优化器 ORACLE的优化器共有3种: a. RULE (基于规则) b. COST (基于成本) c. CHOOSE (选择性) 设置缺省的优化 ...

  2. oracle sql 优化大全

    转自: http://panshaobinsb.iteye.com/blog/1718233 http://yulimeander.blog.sohu.com/115850824.html 最近遇到了 ...

  3. Oracle SQL 优化原则(实用篇)

    由于SQL优化优化起来比较复杂,并且还受环境限制,在开发过程中,写SQL必须遵循以下几点原则: 1.Oracle 采用自下而上的顺序解析WHERE子句,根据这个原理,表之间的连接必须写在其他Where ...

  4. oracle sql优化

    整理一下网上所看到sql优化方法 1.使用大写字母书写sql,因为oracle解释器会先将sql语句转换成大写后再解释 2    减少访问数据库的次数,多数情况下一条sql可以达到目的的,就不要使用多 ...

  5. Oracle SQL优化一(常见方法)

    1.表访问方式优化: a)普通表优先“Index Lookup 索引扫描”,避免全表扫描 大多数场景下,通过“Index Lookup 索引扫描”要比“Full Table Scan (FTS) 全表 ...

  6. oracle sql优化笔记

    oracle优化一般分为:1.sql优化(现在oracle都会根据sql语句先进行必要的优化处理,这种应该用户不大了,但是像关联和嵌套查询肯定是和影响性能的) A.oracle的sql语句的条件是从右 ...

  7. Oracle SQL优化器简介

    目录 一.Oracle的优化器 1.1 优化器简介 1.2 SQL执行过程 二.优化器优化方式 2.1 优化器的优化方式 2.2 基于规则的优化器 2.3 基于成本的优化器 三.优化器优化模式 3.1 ...

  8. Oracle SQL优化原则

    原文:http://bbs.landingbj.com/t-0-240353-1.html 1.选用适合的 ORACLE 优化器 2.访问 Table 的方式 3.共享SQL语句 共享的语句必须满足三 ...

  9. Oracle SQL 优化规则

    一.问题的提出 在应用系统开发初期,由于开发数据库数据比较少,对于查询SQL语句,复杂视图的的编写等体会不出SQL语句各种写法的性能优劣,但是如果将应用 系统提交实际应用后,随着数据库中数据的增加,系 ...

  10. Oracle SQl优化总结

    对数据库技术的热爱是我唯一的安慰,毕竟这是自己喜欢的事情,还可以做下去. 因为客户项目的需要,我又开始接触Oracle,大部分工作在工作流的优化和业务数据的排查上.为了更好的做这份工作,我有参考过or ...

随机推荐

  1. python 进制 转换

    测试用的python源码 ''''' Created on 2014年8月21日 @author: lenovo ''' import binascii import struct def examp ...

  2. 2015 Multi-University Training Contest 9

    1001 Expression 式子不好推啊.见官方题解. 式子知道就方便了.处理好组合数和阶乘. 按区间长度从小到大递推完就好. # include <iostream> # inclu ...

  3. User already has more than 'max_user_connections' active connections

    vi /etc/my.cnf修改  max_user_connections 参数的数值,重启 MySQL 服务器

  4. 2016-11-10linux

    ---恢复内容开始---  新建用户natasha,uid为88,gid为6,备注信息为"master"   修改natasha用户的家目录为/Natasha    查看用户信息配 ...

  5. JPA 系列教程13-复合主键-@EmbeddedId+@Embeddable

    复合主键 指多个主键联合形成一个主键组合 需求产生 比如航线一般是由出发地及目的地确定,如果要确定唯一的航线就可以用出发地和目的地一起来表示 ddl语句 同复合主键-2个@Id和复合主键-2个@Id+ ...

  6. spring框架--IOC容器,依赖注入

    思考: 1. 对象创建创建能否写死? 2. 对象创建细节 对象数量 action  多个   [维护成员变量] service 一个   [不需要维护公共变量] dao     一个   [不需要维护 ...

  7. samba配置(基础版)

    1.  下载及安装Samba 推荐用yum来安装,这样它可以自己解决包的依赖关系,省时.省事又方便.一条命令搞定: yum -y install samba 2.  配置Samba 关于Samba的配 ...

  8. PhpMyAdmin管理SQLSERVER的问题

    由于项目需要对MSSQL做管理(多个版本的) 之前有个websqladmin的一个开源的项目,但是感觉功能太弱了,而且,采用的SQLDMO的方式,有点过时了. 所以考虑对其升级,方案大概有几种: 1. ...

  9. [转载]Linux 环境下编译 0.11版本内核 kernel

    最近在看<.如果Clobber/Modify 为空,则其前面的冒号(:)必须省略. 2.如果Output,Input,Clobber/Modify都为空,Output,Input之前的冒号(:) ...

  10. python实现邮件发送

    实例补充: #**************************利用STMP自动发送邮件******************************import smtplibsmtp = smtp ...