[发明专利]一种时间密集大数据量的B/S分区间分页查询方法有效

专利信息
申请号: 201210338858.X 申请日: 2012-09-13
公开(公告)号: CN102880685A 公开(公告)日: 2013-01-16
发明(设计)人: 李倩倩;吕江花;田径;文乔;马世龙 申请(专利权)人: 北京航空航天大学
主分类号: G06F17/30 分类号: G06F17/30
代理公司: 北京永创新实专利事务所 11121 代理人: 周长琪
地址: 100191*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 时间 密集 数据量 区间 分页 查询 方法
【权利要求书】:

1.一种时间密集大数据量的B/S分区间分页查询方法,其特征在于,用户通过浏览器端输入初始查询条件,在请求某一页或某一区间时,服务器端根据以下步骤获取请求结果数据:

步骤1:收集本次用户在浏览器端输入的查询条件,放入查询条件queryCondition中,并获取每个区间包含的最多页数cacheSize,每页包含的最多数据条目数pageSize,以及两条数据间最短时间间隔span(ms),每个区间最多的结果条目数intervalTimeNum=cacheSize*pageSize;所述的查询条件queryCondition为一数据结构,设置的参数包括:期望查询的数据的起始时间startTime、结束时间endTime、期望查询的参数编号、期望查询的数据页page、已查询过的区间集合qIntervals、本次查询的查询编号qNum、以及本次查询的区间的总页数pageNum,除pageNum仅在服务器端设置和使用外,其他参数均由浏览器端设置并传递到服务器端;当前查询的页page=queryCondition.page,当前查询编号qNum=queryCondition.qNum;首次请求,queryCondition.page为1;

步骤2:设置本次查询的缓存文件qNum.txt存放于web服务器下该用户的目录中,用filepath表示文件的完整路径;缓存文件qNum.txt的每行对应已查询过的区间的一页数据的起始时间和结束时间以及该页所属区间编号,每行的格式为:第一个时间,最后一个时间,所属区间;

步骤3:根据当前查询的页page及cacheSize,获得当前查询的页所在的区间interval:interval=(page-1)/cacheSize+1,然后判断是否是第一次查询该区间,若是,执行步骤4;若否,打开本次查询对应的缓存文件,定位到第page行,读出该行数据,将该行中记录的第一个时间赋值给queryConditon.startTime,第二个时间赋值给查询条件的结束时间queryCondition.endTime,执行步骤10;

步骤4:若page=1,直接执行步骤5;若page>1,从本次查询的缓存文件中读出第page-1行中的最后一个时间,然后设置查询条件的开始时间queryCondition.startTime为该最后一个时间+span(ms),然后执行步骤5;若page<1,返回有0条数据的结果集,本次请求结束;

步骤5:根据查询条件queryCondition进行查询分解,构造SQL语句,去每个相关的数据库表中分别获取符合查询条件的最小的前intervalTimeNum个时间点;

步骤6:将步骤5得到的所有时间点集合进行归并排序,结果放入临时数组tempTimeArray中;若tempTimeArray中有0个时间点,则返回有0条数据的结果集,本次请求结束,否则执行步骤7;

步骤7:用length表示tempTimeArray中时间点个数,size表示当前区间总数据条数,若length>=intervalTimeNum,则size=intervalTimeNum,当前区间有cacheSize页;否则,size=length,若size%pageSize=0,则当前区间有size/pageSize页,若size%pageSize≠0,则当前区间有size/pageSize+1页,将当前区间的总页数暂存于queryCondition.pageNum中;

步骤8:打开缓存文件qNum.txt,根据步骤6记录的临时数组tempTimeArray,以追加的方式在缓存文件中顺序写入当前区间每一页第一条数据和最后一条数据的时间点,并记录每一页所属的区间;

具体第i(i从1递增到queryCondition.pageNum)页的第一个时间为tempTimeArray[(i-1)*pageSize],若1<=i<queryCondition.pageNum,则最后一个时间为tempTimeArray[i*pageSize-1],若i=queryCondition.pageNum,则最后一个时间为tempTimeArray[size-1];

步骤9:将查询条件中的开始时间queryCondition.startTime设置为当前区间第一页的第一个时间,结束时间queryCondition.endTime设置为当前区间第一页的最后一个时间;

步骤10:根据查询条件queryCondition进行查询分解,构造SQL语句,去每个相关的数据表中分别获取数据;

步骤11:将得到的所有数据集进行结果拼接,不同数据集相同时间点的数据拼接到一条结果数据中,保存在以时间点为key,该时间点上的结果数据为value值的哈希表resHash中;每条结果数据也是一个哈希表,以结果集列名为key,结果数据在该列上的值为value;

步骤12:将所得的resHash构造成最终返回到前台的结果列表resList;判断是否是第一次查询当前区间,若是,将该区间的总页数queryCondition.pageNum插入resList的第一条数据前,然后执行步骤13,若否,直接执行步骤13;

步骤13:将结果列表resList返回前台显示,本次请求结束。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/201210338858.X/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top