Oracle查询优化之减少统计的数据量
统计各部门人数很简单,通过部门分组即可,要统计部门以下下级部门的人数也简单,通过递归。要统计所有有下级部门的部门人数(包含下级)页比较简单,
先查询出有下级的部门,在对每个部门进行递归查询,如下:
select count(1) s ,b.b0200 from a01 a,
(select b0200 from b02 d where b0209=5 start with d.b0200=1 connect by prior d.b0200=d.b0203) b /*查询工会id为1的所有有下级的工会*/
where a.b0200 in (select b0200 from b02 d start with d.b0200=1 connect by prior d.b0200=d.b0203)
group by b.b0200
这个方法是最简单的,逻辑也很清楚,不过结果就不好了,简单的来说效率太低。300多万条数据执行时间已经难以想象了。
只有进行改进,减少数据量,一开始从上级开始统计数据量很大,那么就从下级开始统计减少数据量。即先统计最下级工会的第一个上级的人数,依次往上累加,这样的数据量就少了很多
select b.b0200, sum(s) from (
select b.b0203 as b0200,count(1) s from a01 a,(select b0200 ,b0203 from b02 b where b0209=0 start with b.b0200=1 connect by prior b.b0200=b.b0203) b
where a.b0200=b.b0200
group by b.b0203) a,(select b0200 from b02 d where b0209=5 start with d.b0200=1 connect by prior d.b0200=d.b0203) b/*查询工会id为1的所有有下级的工会*/
where a.b0200 in ( select b0200 from b02 c start with c.b0200=b.b0200 connect by prior c.b0200=c.b0203 )
group by b.b0200
此时的效果已经比上一次好了很多,花费15秒左右的时间
Oracle查询优化之减少统计的数据量的更多相关文章
- Mysql查询优化之 触发器加中间表 方法优化count()统计大数据量总数问题
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6138288.html 在上一篇博文我们提到,分页有三种方法.其中,第三种是我们最常用的.然而,在实际应用过程中 ...
- Oracle数据库--解决单张表中数据量巨大(大数据、数据量上百万级别,后查询,更新数据等耗时剧增)
版权声明:本文为博主原创文章,未经博主允许不得转载. https://blog.csdn.net/QQ578473688/article/details/54561397 思路1:采用备份表 备份表中 ...
- oracle查询一个时间段每天的数据量
1.需求: 从所有数据中,查出一个时间段中每天的数据量,即:按日做汇总. 2.SQL语句模板: select trunc(date_col) date, sum(num_col) num, count ...
- ORACLE和SQL查询库数据量
ORACLE根据账号查询每张表数据量: select t.table_name,t.num_rows from user_tables t ORDER BY NUM_ROWS DESC; SQL SE ...
- oracle 数据库下所有表结构、数据量及缺失值统计
表结构 SELECT t1.TABLE_NAME, t1.COLUMN_NAME, t1.DATA_TYPE || '(' || t1.DATA_LENGTH || ')', t2.COMMENTS ...
- (Oracle)数据量统计存储过程
本过程适用于Oracle数据量统计. create or replace procedure SP_GET_TAB_COUNT as v_tableName HDSD_TJ.Tablename%typ ...
- 查询优化百万条数据量的MySQL表
转自https://www.cnblogs.com/llzhang123/p/9239682.html 1.两种查询引擎查询速度(myIsam 引擎 ) InnoDB 中不保存表的具体行数,也就是说, ...
- 大数据量高并发的数据库优化,sql查询优化
一.数据库结构的设计 如果不能设计一个合理的数据库模型,不仅会增加客户端和服务器段程序的编程和维护的难度,而且将会影响系统实际运行的性能.所以,在一个系统开始实施之前,完备的数据库模型的设计是必须的. ...
- 【MySQL】MySQL中针对大数据量常用技术_创建索引+缓存配置+分库分表+子查询优化(转载)
原文地址:http://blog.csdn.net/zwan0518/article/details/11972853 目录(?)[-] 一查询优化 1创建索引 2缓存的配置 3slow_query_ ...
随机推荐
- 路飞学城Python-Day52
27-选项卡 <!DOCTYPE html> <html lang="en"> <head> <meta charset=&quo ...
- python之组合与继承的使用场景
1.什么时候使用类的组合?当类之间有显著的不同,并且较小的类是组成较大类所需要的组件,此时用类的组合较合理:场景:医院是由多个科室组成的,此时我们可以定义不同科室的类,这样医院的类我们可以直接使用各个 ...
- 常见的dos命令(及抒写方式)
1.dir:列出当前目录下的主体及文件夹. 2.md:创建目录. 3.rd:删除目录.{注意:rd不能删除非空的文件夹,并且只能用于文件夹的删除} 3.cd :进入指定目录. 4.cd . . :退出 ...
- ArcGIS中标格乱码??
安装好ArcGIS之后导入地图层之后,显示 label 时中文乱码,但是导出数据显示正常 这是 ArcGIS 安装环境编码的问题,只需要修改一下配置文件即可 打开 cmd 命令窗口 reg add H ...
- 2015 Multi-University Training Contest 10 hdu 5407 CRB and Candies
CRB and Candies Time Limit: 2000/1000 MS (Java/Others) Memory Limit: 65536/65536 K (Java/Others)T ...
- POJ 4786 Fibonacci Tree
Fibonacci Tree Time Limit: 2000ms Memory Limit: 32768KB This problem will be judged on HDU. Original ...
- String 字符串的追加,数组拷贝
package chengbaoDemo; import java.util.Arrays; /** *需求:数组的扩容以及数据的拷贝 *分析:因为String的实质是以字符数组存储的,所以字符串的追 ...
- java map实现二级联动查询(省市区下拉列表查询)
1.Map集合可以保存键值映射关系,这非常适合本实例所需要的数据结构,所有省份信息可以保存为Map集合的键,而每个键可以保存对应的城市信息,本实例就是利用Map集合实现了省市级联选择框,当选择省份信息 ...
- 双向链表的实现与操作(C语言实现)
双向链表也叫双链表,是链表的一种,它的每一个数据结点中都有两个指针,分别指向直接后继和直接前驱.所以,从双向链表中的随意一个结点開始,都能够非常方便地訪问它的前驱结点和后继结点. 单链表的局限 1.单 ...
- unity3d教程运行物理机制
首先,我们将把Hooke定律写Euler方法结合在一起找到新坐标.加速和速度. Hooke定律是F=kx,这里的F是指由水流产生的力(记住,我们将把水体表面模拟为水流),k是指水流的常量.x则是位移. ...