oracle 的分页、截断查询
oracle 分页、截断查询
需求:从车管所的备案库中(oracle)取出数据,放到车综大数据平台(http方式)
现场情况:oracle中有三张表,CZRKXX(常住人口信息),ZDRYXX(重点人员信息),ZPXX(照片信息)
这三张表,字段超级多,没有主键,只选取了需要展示的字段,以 CZRKXX 表做左连接查询,大约是 500W 条数据,每次取500条
实现方式:多进程,多线程,增量获取
由于没有自增ID,数据的生成时间 和 更新时间,没有任何字段能够作为依次的查询依据,所以用到分页、截断
增量的实现:每次读取后,将索引变量增加一定区间大小,然后存储到文件中(数据库也行),为的是在下一次读取时(程序挂掉也不会影响),再次开启可以继续从中断的地方开始读取
单核 CPU 保持在 20 线程左右
连接查询SQL:{} 中填充数据的索引值
例如:ROWNUM <= 500, ... UA.RN > 0, 取到的是索引为 1 ~ 500 的记录,RN 是记录的索引值
query_sql = """SELECT * FROM
(SELECT ROWNUM RN, Z.ZDRKBH, Z.ZDRYLBDM, Z.XM, Z.XMHYPY, Z.CSRQ, Z.HJDZ_JYQK,
Z.HJDZ_XZQHDM, Z.XZZ_XZQHDM, Z.XZZ_DZMC, Z.SC_XXRKSJ, Z.DXBH, Z.LADWJGDM, Z.ZJLASJ, Z.ZDRYLBXL,
Z.ZDRYYXXDM, Z.JLXZSJ, Z.JLBGSJ, Z.CJSJ, Z.SJCQSJ, Z.DM_ID, Z.SJRKSJ, Z.SJGXSJ,
C.GMSFHM, C.RYBH, C.XBDM, C.SG, C.XXDM, C.MZDM, C.ZJXYDM, C.HYZKDM, C.BYZKDM, C.ZYLBDM, C.ZY, C.JG_GJHDQDM, C.JG_XZQHDM,
C.CSD_GJHDQDM, C.CSD_XZQHDM, C.CSD_DZMC, C.HJDZ_DZMC, C.FWCS, C.SFZX_PDBZ,
P.ZP
FROM (CZRKXX C LEFT JOIN ZDRYXX Z ON C.GMSFHM=Z.GMSFHM) LEFT JOIN ZPXX P ON Z.GMSFHM=P.GMSFHM
WHERE ROWNUM <= {}) UA
WHERE UA.RN > {}
"""
单表查询SQL:
两条 sql 分页的逻辑是一样的
"""select * from (select P.GMSFHM, P.ZP, ROWNUM RN from hsjj.ZPXX P where ROWNUM <= {}) UA where UA.RN > {}"""
上面是模板,{} 中需要做字符串格式化:
"""select * from (select P.GMSFHM, P.ZP, ROWNUM RN from hsjj.ZPXX P where ROWNUM <= 100) UA where UA.RN > 0"""
截断查询SQL:
"select * from (select XH, XM, GMSFHM, HJXZ, RYLX, DJDW_GAJGMC, ZP, JZ_LXDH, JJ_LXDH from DCRY.SWRYXX) WHERE ROWNUM <= 10;"
end~
oracle 的分页、截断查询的更多相关文章
- 对于Oracle中分页排序查询语句执行效率的比较分析
转自:http://bbs.csdn.net/topics/370033478 对于Oracle中分页排序查询语句执行效率的比较分析 作者:lzgame 在工作中我们经常遇到需要在Oracle中进行分 ...
- MySql、SqlServer、Oracle 三种数据库查询分页方式
SQL Server关于分页 SQL 的资料许多,有的使用存储过程,有的使用游标.本人不喜欢使用游标,我觉得它耗资.效率低:使用存储过程是个不错的选择,因为存储过程是颠末预编译的,执行效率高,也更灵活 ...
- Oracle中分页查询语句
Oracle分页查询语句使我们最常用的语句之一,下面就为您介绍的Oracle分页查询语句的用法,如果您对此方面感兴趣的话,不妨一看. Oracle分页查询语句基本上可以按照本文给出的格式来进行套用.O ...
- Oracle的分页查询语句优化
Oracle的分页查询语句基本上可以按照本文给出的格式来进行套用. (一) 分页查询格式: SELECT * FROM ( SELECT A.*, ROWNUM RN FROM (SELECT ...
- Mybatis oracle多表联合查询分页数据重复的问题
Mybatis oracle多表联合查询分页数据重复的问题 多表联合查询分页获取数据时出现一个诡异的现象:数据总条数正确,但有些记录多了,有些记录却又少了甚至没了.针对这个问题找了好久,最后发现是由于 ...
- oracle高效分页查询总结
本文参考链接:http://blog.sina.com.cn/s/blog_8604ca230100vro9.html 探索查询语句: --分页参数:size = 20 page = 2 --没有or ...
- Oracle高效分页查询(转)
page --没有order by的查询 -- 嵌套子查询,两次筛选(推荐使用) --SELECT * -- FROM (SELECT ROWNUM AS rowno, t.* -- FROM DON ...
- Oracle 的分页查询 SQL 语句
Oracle的分页查询语句基本上可以按照本文给出的格式来进行套用. 分页查询格式: SELECT * FROM (SELECT A.*, ROWNUM RN FROM (SELECT * FROM T ...
- Oracle 数据库分页查询的三种方法
一.Oracle 数据库分页查询的三种方法 1.简介 不能对 rownum 使用 >(大于或等于 1 的数值).>=(大于 1 的数值).=(不等于 1 的数值),否则无结果.所以直接用 ...
随机推荐
- Hadoop记录-HDFS均衡脚本
#!/bin/bash #作用:hdfs使用率取最大100个主机和最小80个主机进行数据均衡 #打印报告 hdfs dfsadmin -report>report.txt #截取主机名 cat ...
- Nginx之开启压缩
参考:https://blog.csdn.net/php12345679/article/details/80843939 https://blog.csdn.net/pf1234321/articl ...
- 15点睛Spring4.1-TaskExecutor
转发:https://www.iteye.com/blog/wiselyman-2212679 15.1 TaskExecutor spring的TaskExecutor为在spring环境下进行并发 ...
- 如何解决mac brew遇到无法下载的依赖?
使用brew安装软件时,需要下载依赖包,但是如果依赖包特别大的时候,就很容易失败:brew本身不支持断点续传:但是可以使用wget -c的方式断点续传的下载依赖:下载完如何给brew安装使用呢?参考: ...
- macos的iptables功能是pfctl
pfctl https://www.kokaruk.com/macos-pf-firewall/ https://blog.csdn.net/yjy1304/article/details/90762 ...
- tcpreplay使用介绍
安装 brew install tcpreplay yum install tcpreplay tcpreplay 回放 tcpreplay is a tool for replaying netwo ...
- centos7.6 升级openssh openssl
centos7.3和centos7.6升级完毕测试登录ssh以及重启后登录ssh均无问题. 前期请自行配置好yum源(如果不会请百度) 整个过程不需要卸载原先的openssl包和openssh的rpm ...
- Java IO把一个文件中的内容以字符串的形式读出来
代码记录(备查): /** * 把一个文件中的内容以字符串的形式读出来 * * @author zhipengs * */ public class FileToString { public sta ...
- 干货 | 20多门AI网络课程资源(附链接+PDF)
现如今,在火爆的人工智能领域,面临的最窘迫的问题是越来越庞大的产业规模和国家每年约500万的相关人才需求的矛盾.广阔的发展前景.巨大的人才缺口和令人心动的行业薪资,让越来越多的年轻人选择了进入这一行业 ...
- todo----mysql常用语句总结补充完成
todo----mysql常用语句总结补充完成