一种数据仓库中基于连接索引的查询优化方法_4

文档序号:8543806阅读:来源:国知局
维表位图,事实表外键通过内存 地址映射访问维表位图,创建连接索引位图,提高事实表扫描效率。通过外键连接索引机 审|J,W数组、位图、内存地址访问等简单的数据类型的计算实现了动态生成连接索引位图的 过程,消除了传统位图连接索引中的索引存储、维护和索引计算代价。连接索引位图的计 算过程包含固定的事实表外键列和维表位图,是一种简单但计算量较大的任务,适合于协 处理器计算。本发明提出的连接索引位图计算技术可W由CPU完成,也可W将连接索引位 图计算设及的事实表外键列存储在协处理器内存,由协处理器完成连接索引位图的计算过 程,协同CPU上的OLAP查询处理。
[0057] 上述各实施例仅用于说明本发明,各个步骤都是可W有所变化的,在本发明技术 方案的基础上,凡根据本发明原理对个别步骤进行的改进和等同变换,均不应排除在本发 明的保护范围之外。
【主权项】
1. 一种数据仓库中基于连接索引的查询优化方法,其特征在于:所述查询优化方法包 括以下步骤: 1) 创建基于维表代理键的事实表外键连接索引; 2) 创建连接索引更新策略:当维表中插入新记录时,自动为其分配新的代理键值;代 理键不包含语义,记录的更新操作只修改语义属性值,不对代理键进行修改;数据仓库中被 参照的表中记录的删除需要满足参照表中相应记录首先被删除的条件; 3) 当维表上存在谓词条件时,通过连接索引直接访问维表记录后需要进行谓词判断, 参照位图连接索引通过动态位图连接索引计算生成连接位图索引,优化事实表扫描性能; 4) 在数据仓库中,当维表上的选择率很低时,维表位图进一步压缩以提高维表位图计 算的cache层次; 5) 采用基于协处理器内存计算的参照位图连接索引计算方法,只使用数组和位图数据 结构,计算简单的内存地址访问,能够在众核协处理器上完成计算过程。
2. 如权利要求1所述的一种数据仓库中基于连接索引的查询优化方法,其特征在于: 所述步骤1)中,当维表采用列存储或定长记录的行存储时,维表代理键直接映射为维表记 录的偏移地址,事实表外键列的值直接映射为维表记录偏移地址,实现基于连接索引的查 询处理。
3. 如权利要求1所述的一种数据仓库中基于连接索引的查询优化方法,其特征在于: 所述步骤1)中,创建连接索引包括以下几种策略: (1) 当维表使用代理键作为主键时,事实表外键直接作为连接索引; (2) 当维表主键不是代理键但能函数映射为代理键时,通过函数映射实现连接索引; (3) 当维表主键是复合主键或不能函数映射为代理键的主键时,通过主-外键同步更 新或增加代理键外键的方法创建连接索引; (4) 事实表与维表之间,以及雪花模型中维表之间基于代理键参照引用的外键机制使 外键作为连接索引使用,优化表间连接操作。
4. 如权利要求1所述的一种数据仓库中基于连接索引的查询优化方法,其特征在于: 所述步骤2)中,当维表记录需要删除时,需要保证代理键的顺序性,采用两种更新策略: (1) 设置一个删除向量D_Vec,存储删除的维表记录的代理键值,保留当前删除记录的 存储空间;当插入新记录时,为新记录分配删除向量中的代理键值,将新插入的记录写入删 除记录代理键对应的存储空间,填补删除记录留下的记录空洞; (2) 通过记录交换实现记录删除:当维表记录删除后,将维表中最后一条记录置换到 当前删除记录的位置,代理键更新为当前位置的代理键值,同时需要在事实表中将交换的 维表记录对应的外键更新为置换后的代理键。
5. 如权利要求1所述的一种数据仓库中基于连接索引的查询优化方法,其特征在于: 所述步骤3)中,参照位图连接索引的计算过程分为以下几个步骤: (1) 根据查询谓词生成维表位图,将SQL命令分解为在各个维表上的选择子句,根据维 表过滤条件创建维表位图,事实表外键按维表位图的大小和选择率优先执行与较小的、低 选择率的维表位图上进行的参照位图连接索引计算; (2) 通过事实表外键连接索引映射到维表位图,根据维表位图映射位置的取值生成连 接位图,连接位图中满足维表查询条件的位置设置为1,否则置为O ; (3)按照连接位图中1的位置访问下一个事实表外键对应的偏移地址,将其对应的值 映射到下一个维表位图的位置,根据维表位图该位置的值更新连接位图对应的位置的取 值;依次处理完各个事实表外键列后生成查询最终的连接位图,即连接位图通过事实表外 键参照维表位图而动态生成。
6. 如权利要求1所述的一种数据仓库中基于连接索引的查询优化方法,其特征在于: 所述步骤4)中,将原始维表位图中连续的512位映射为一个二级位图位,较小的二级位图 比原始的维表位图具有更高的cache访问性能;二级位图机制对应低选择率查询,当查询 选择率低于〇. 195%时能将大量的维表位图内存访问优化为对较小二级位图的cache访 问。
7. 如权利要求1所述的一种数据仓库中基于连接索引的查询优化方法,其特征在于: 所述步骤5)中,基于协处理器内存计算的参照位图连接索引计算方法包括以下步骤: (1) 划分连接位图索引计算数据集:根据协处理器内存容量划分用于连接索引位图计 算的数据集; (2) 维表位图创建及复制:将查询改写为维表上的谓词操作并在相应的维表上创建维 表位图,然后将维表位图通过PCI-E通道传输到协处理器内存; (3) 连接位图索引计算:在协处理器上,对协处理器内存中的事实表外键列和从CPU内 存复制的维表位图进行并行的连接索引位图计算,生成连接索引位图,标识事实表中满足 查询谓词条件的记录偏移地址; (4) 连接位图索引传输:当查询的选择率较高时,将连接索引位图直接传输给CPU,当 查询的选择率很低时,将连接索引位图转换为压缩形式,即记录位图中1位置的向量,将较 小的连接索引向量传输给CPU ;当采用INT型向量时,当查询选择率低于3. 125%时,向量存 储的空间低于位图; (5) 基于连接位图索引的查询处理:基于连接索引能实现一种"无连接"的查询处理, 通过事实表外键向维属性列的直接地址映射访问完成查询处理任务,也能将连接位图索引 作为事实表上的一种索引访问机制,为数据库查询处理引擎提供额外的索引访问功能。
8. 如权利要求7所述的一种数据仓库中基于连接索引的查询优化方法,其特征在于: 所述步骤(1)中,划分连接位图索引计算数据集的最优方案为按照数据仓库中事实表外键 的大小配置具有同等大小内存的协处理器;当协处理器内存小于事实表外键列大小时,采 用水平分片或垂直分片的方式将数据仓库的一个水平分片的全部外键列或者访问频率较 高的外键列存储于协处理器内存,完成对数据仓库子集或部分维度上的连接位图索引计 算。
9. 如权利要求7所述的一种数据仓库中基于连接索引的查询优化方法,其特征在于: 所述步骤(5)中,协处理器完成连接索引位图计算后将连接索引位图传回CPU,通过位图或 向量对庞大的事实表进行索引访问。
【专利摘要】本发明涉及一种数据仓库中基于连接索引的查询优化方法,步骤为:创建基于维表代理键的事实表外键连接索引;创建连接索引更新策略;当维表上存在谓词条件时,通过连接索引直接访问维表记录后需要进行谓词判断,参照位图连接索引通过动态位图连接索引计算生成连接位图索引;当维表上的选择率很低时,维表位图进一步压缩以提高维表位图计算的cache层次;采用基于协处理器内存计算的参照位图连接索引计算方法,只使用数组和位图数据结构,计算简单的内存地址访问。本发明能有效提高位图索引的计算性能,并且能与GPU、Xeon PhiTM等高性能协处理器相结合,加速索引计算性能,可以广泛在数据仓库领域中应用。
【IPC分类】G06F17-30
【公开号】CN104866608
【申请号】CN201510303412
【发明人】张延松, 张宇, 王珊
【申请人】中国人民大学
【公开日】2015年8月26日
【申请日】2015年6月5日
当前第4页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1