[发明专利]一种数据仓库中基于连接索引的查询优化方法有效
申请号: | 201510303412.7 | 申请日: | 2015-06-05 |
公开(公告)号: | CN104866608B | 公开(公告)日: | 2018-01-09 |
发明(设计)人: | 张延松;张宇;王珊 | 申请(专利权)人: | 中国人民大学 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京纪凯知识产权代理有限公司11245 | 代理人: | 徐宁,孙楠 |
地址: | 100872 北京市海淀区中关*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据仓库 基于 连接 索引 查询 优化 方法 | ||
技术领域
本发明涉及一种种数据仓库领域中的查询处理方法,特别是关于一种数据仓库中基于连接索引(join index)的查询优化方法。
背景技术
数据仓库是一种基于多维数据模型的复杂数据集,在基于数据库的OLAP(Relational OLAP,ROLAP)查询处理时需要将事实表和多个维表连接起来执行复杂的分析查询命令,连接操作的性能一直是分析型查询处理(OLAP)最重要的问题。连接索引是一种通过预连接创建两个或多个表记录之间连接关系的索引,连接索引中记录了不同表之间连接记录的地址关系。在查询处理时,通过连接索引可以直接获得两个表连接记录的地址完成连接操作,消除按照连接键值进行查找的连接操作代价。连接索引主要应用于分析型数据库中,用以优化代价较大的两表或多表之间的连接操作。位图连接索引(bitmap join index)是连接索引的扩展技术,它是面向两个表的连接关系创建的位图索引,数据仓库中通常使用位图连接索引优化维度表和事实表的连接操作性能。位图连接索引可以理解为在事实表上为与事实表连接的维表属性创建的位图索引,当查询的WHERE子句中包含该维表属性的谓词表达式时,通过位图连接索引可以快速返回满足事实表和维表连接条件以及谓词表达式的维表属性所对应的事实表的行。连接索引是数据仓库中提高事实表与维表间连接操作性能的重要技术,它的主要缺点是索引存储空间代价较大,当OLAP查询中涉及事实表与多个维表之间的连接操作,以及查询中涉及维表上的多个属性时,连接索引的存储空间代价随之增加,维表属性上取值数量的增加也导致在位图连接索引中位图计算代价的增长。当前数据仓库应用特点从多维查询向高维查询过渡,OLAP查询中包含越来越多的连接表和维表属性,且更新频率越来越高,传统的连接索引技术面临巨大的存储和索引维护代价。
发明内容
针对上述问题,本发明的目的是提供一种数据仓库中基于连接索引的查询优化方法,该方法适应于大内存、多核处理器平台上的内存列存储数据仓库的实时OLAP查询处理应用,能有效提高位图索引的计算性能,并且能与GPU、Xeon PhiTM等高性能协处理器相结合,加速索引计算性能。
为实现上述目的,本发明采取以下技术方案:一种数据仓库中基于连接索引的查询优化方法,其特征在于:所述查询优化方法包括以下步骤:1)创建基于维表代理键的事实表外键连接索引;2)创建连接索引更新策略:当维表中插入新记录时,自动为其分配新的代理键值;代理键不包含语义,记录的更新操作只修改语义属性值,不对代理键进行修改;数据仓库中被参照的表中记录的删除需要满足参照表中相应记录首先被删除的条件;3)当维表上存在谓词条件时,通过连接索引直接访问维表记录后需要进行谓词判断,参照位图连接索引通过动态位图连接索引计算生成连接位图索引,优化事实表扫描性能;4)在数据仓库中,当维表上的选择率很低时,维表位图进一步压缩以提高维表位图计算的cache层次;5)采用基于协处理器内存计算的参照位图连接索引计算方法,只使用数组和位图数据结构,计算简单的内存地址访问,能够在众核协处理器上完成计算过程。
所述步骤1)中,当维表采用列存储或定长记录的行存储时,维表代理键直接映射为维表记录的偏移地址,事实表外键列的值直接映射为维表记录偏移地址,实现基于连接索引的查询处理。
所述步骤1)中,创建连接索引包括以下几种策略:(1)当维表使用代理键作为主键时,事实表外键直接作为连接索引;(2)当维表主键不是代理键但能函数映射为代理键时,通过函数映射实现连接索引;(3)当维表主键是复合主键或不能函数映射为代理键的主键时,通过主-外键同步更新或增加代理键外键的方法创建连接索引;(4)事实表与维表之间,以及雪花模型中维表之间基于代理键参照引用的外键机制使外键作为连接索引使用,优化表间连接操作。
所述步骤2)中,当维表记录需要删除时,需要保证代理键的顺序性,采用两种更新策略:(1)设置一个删除向量D_Vec,存储删除的维表记录的代理键值,保留当前删除记录的存储空间;当插入新记录时,为新记录分配删除向量中的代理键值,将新插入的记录写入删除记录代理键对应的存储空间,填补删除记录留下的记录空洞;(2)通过记录交换实现记录删除:当维表记录删除后,将维表中最后一条记录置换到当前删除记录的位置,代理键更新为当前位置的代理键值,同时需要在事实表中将交换的维表记录对应的外键更新为置换后的代理键。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民大学,未经中国人民大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510303412.7/2.html,转载请声明来源钻瓜专利网。