[发明专利]用于非索引覆盖的数据查询方法和装置有效

专利信息
申请号: 201410086556.7 申请日: 2014-03-10
公开(公告)号: CN103810300B 公开(公告)日: 2017-08-01
发明(设计)人: 洪超 申请(专利权)人: 北京国双科技有限公司
主分类号: G06F17/30 分类号: G06F17/30
代理公司: 北京康信知识产权代理有限责任公司11240 代理人: 李志刚,吴贵明
地址: 100086 北京市海淀区*** 国省代码: 北京;11
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 用于 索引 覆盖 数据 查询 方法 装置
【说明书】:

技术领域

发明涉及数据库领域,具体而言,涉及一种用于非索引覆盖的数据查询方法和装置。

背景技术

在数据库表有聚集索引的情况下,当用数据库表的非聚集索引列作为过滤条件,根据该列来从数据库表中获取数据列时,获取的数据列在非聚集索引里通常都不是索引覆盖(即非聚集索引缺少某些选择的数据列),此时数据库系统如SQLServer执行非聚集索引查找,并对于不包含的数据列执行书签查找,或者执行聚集索引扫描。在数据量大时,无论是执行非聚集索引查找还是执行聚集索引扫描,都造成数据查询性能降低。

例如,FactSession表在SessionTimeKey(时间列)上建立有聚集索引,在SessionKey上面建立有非聚集索引,非索引覆盖的非聚集索引查询代码如下:

SELECT SessionKey,BrowserKey FROM dbo.FactSession WHERE SessionKey>7342

在上述举例中可以看出,非聚集索引查询是通过非聚集索引里的SessionKey进行过滤查询,但在选择列里面除了SessionKey还包含了BrowserKey,这个BrowserKey便导致了这条查询不是非聚集索引的索引覆盖的情况,因此,变成整数据表的聚集索引扫描。

针对现有技术中在数据量大时造成对数据库表的数据查询性能降低的问题,目前尚未提出有效的解决方案。

发明内容

本发明的主要目的在于提供一种用于非索引覆盖的数据查询方法和装置,以解决在数据量大时造成对数据库表的数据查询性能降低的问题。

为了实现上述目的,根据本发明的一个方面,提供了一种用于非索引覆盖的数据查询方法。根据本发明的用于非索引覆盖的数据查询方法包括:获取数据库表的非聚集索引的过滤条件;在确定通过非聚集索引对非索引覆盖的数据库表进行查询时,获取数据库表的聚集索引的聚簇键的值;以及将过滤条件和聚簇键的值作为查询条件在聚集索引里对数据库表进行查询。

进一步地,获取聚集索引的聚簇键的值包括:从非聚集索引中查找满足过滤条件的记录行;以及获取记录行对应的聚簇键的值。

进一步地,在获取记录行对应的聚簇键的值之后,数据查询方法还包括:对获取的记录行对应的聚簇键的值去重;以及将去重后的聚簇键的值插入到临时表,将临时表和过滤条件作为查询条件。

进一步地,在确定通过非聚集索引对非索引覆盖的数据表进行查询之前,数据查询方法还包括:提取数据库表的所有非聚集索引;基于提取到的非聚集索引判断非聚集索引是否包含所有数据列;以及如果判断出非聚集索引不包含所有数据列,则确定非聚集索引里非索引覆盖。

进一步地,在提取数据库中的所有非聚集索引之后,数据查询方法还包括:将提取到的非聚集索引存储到缓存;以及当再次确定通过非聚集索引对非索引覆盖的数据库进行查询时,获取缓存中的非聚集索引。

为了实现上述目的,根据本发明的另一方面,提供了一种用于非索引覆盖的数据查询装置。根据本发明的用于非索引覆盖的数据查询装置包括:第一获取单元,用于获取数据库表的非聚集索引的过滤条件;第二获取单元,用于在确定通过非聚集索引对非索引覆盖的数据库表进行查询时,获取数据库表的聚集索引的聚簇键的值;以及查询单元,用于将过滤条件和聚簇键的值作为查询条件在聚集索引里对数据库表进行查询。

进一步地,第二获取单元包括:查找模块,用于从非聚集索引中查找满足过滤条件的记录行;以及获取模块,用于获取记录行对应的聚簇键的值。

进一步地,数据查询装置还包括:去重单元,用于在获取记录行对应的聚簇键的值之后,对获取的记录行对应的聚簇键的值去重;以及插入单元,用于将去重后的聚簇键的值插入到临时表,将临时表和过滤条件作为查询条件。

进一步地,数据查询装置还包括:提取单元,用于提取数据库表的所有非聚集索引;判断单元,用于基于提取到的非聚集索引判断非聚集索引是否包含所有数据列;以及确定单元,用于当判断出非聚集索引不包含所有数据列,确定非聚集索引里非索引覆盖。

进一步地,数据查询装置还包括:存储单元,用于在提取数据库中的所有非聚集索引之后,将提取到的非聚集索引存储到缓存;以及第三获取单元,用于当再次确定通过非聚集索引对非索引覆盖的数据库进行查询时,获取缓存中的非聚集索引。

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

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

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

×

专利文献下载

说明:

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

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

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

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

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

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

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

钻瓜专利网在线咨询

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

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