[发明专利]一种主机系统下的内存数据库的实现方法有效
申请号: | 201510075765.6 | 申请日: | 2015-02-12 |
公开(公告)号: | CN104615750B | 公开(公告)日: | 2017-11-03 |
发明(设计)人: | 朱浩 | 申请(专利权)人: | 中国农业银行股份有限公司 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京集佳知识产权代理有限公司11227 | 代理人: | 王宝筠 |
地址: | 100005 北*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 主机 系统 内存 数据库 实现 方法 | ||
技术领域
本申请涉及数据处理技术领域,特别涉及一种主机系统下的内存数据库的实现方法。
背景技术
目前,大型商业银行仍主要以IBM主机系统,处理行内交易,在银行业应用的主机系统受限于IBM平台,故广泛应用的是关系型数据库管理系统DB2数据库。但是,类似于DB2等关系型数据库最擅长处理的是集合而非单条记录。当处理相同数量的记录时,逐条循环处理和批量处理之间的效率差异呈几何单位。
而实际应用中,为了提高小表访问的效率,DB2提供了缓冲池bufferpool来籍此减少对磁盘进行I/O访问时的开销。
但是从目前DB2数据库的应用现状来看,其数据访问效率并不能满足应用对访问热表时的性能要求。
发明内容
有鉴于此,本申请提供一种主机系统下的内存数据库实现方法,以解决现有技术中的数据库的数据访问效率并不能满足应用对访问热表时的性能要求的问题。技术方案如下:
一种主机系统下的内存数据库实现方法,该方法包括:
对初始数据进行数据整理;
将进行整理后的数据进行哈希计算,将哈希计算的结果按照内存数据库中预先建立的内存表规则进行建立,生成内存表源文件,组织生成内存表;
加载所述内存表源文件;
设定下载指令CICS LOAD,当客户信息控制系统区域CICS Region内的程序调用内存数据库时,通过CICS LOAD将所述内存表源文件的入口地址发送给所述程序,以作为该程序解析获取内存表地址的依据;
为所述内存表建立结构化查询语言SQL语句映射。
优选的,所述数据整理为:将所述初始数据导入预先建立的物理表内。
优选的,所述预先建立的内存表规则为:内存表为N+1级哈希结构,其中,前N级只存储下一级哈希表所在位置,即索引,第N+1级用于存储数据。
优选的,所述内存表的第N+1级存储的数据包括,目标数据和离散数据,其中所述目标数据是基于初始数据构成,所述离散数据由动态新增的数据构成。
优选的,按照内存数据库中预先建立的内存表规则进行建立,生成内存表源文件的过程包括:
将所述整理后的数据进行N+1级哈希计算,将得到的N+1级哈希表按照所述内存表规则,将第N+1级用于存储数据,其余N级用于存储索引,生成相应的数据结构;
组织数据结构按照预先设定的形式生成内存表的高级语言源文件。
优选的,所述索引中的各级哈希表包含有Offset和Num两个参数,其中,Offset代表下一级哈希表与内存的相对地址,Num代表下一级哈希表内的元素数量,当某一级哈希表中包含有H1个元素时,那该级哈希表以集合的形式进行表述为:
{{Offset1,Num1},{Offset2,Num2},...,{OffsetH1,NumH1}}。
优选的,所述目标数据包括多个数据块,所述数据块包括:单条记录的访问结果VAL及访问该条记录时的索引字符串Key。
优选的,所述目标数据还包括:指针Pointer,用于指向所述存储到离散数据中的新增数据。
优选的,所述内存表中的起始地址为4KB的倍数,通过调整所述索引中各级哈希表的偏移量使得任一连续数据存储在同一虚拟页。
优选的,所述SQL语句包括:访问、更新、删除、插入和游标。
优选的,所述内存表的访问过程包括:
步骤一:定义用于索引的字符串为Key;
步骤二:根据拆分集合SkSet内的元素Sk1划分Key,得到字符串集合,从所述集合中获得用于第一级哈希索引的字符串,定义为Key1;
步骤三:确定索引中的第一哈希级为当前待访问哈希级,所述Key1为当前待索引字符串;
步骤四:调用哈希函数,对所述当前待索引字符串进行哈希计算,并获得当前哈希值;
步骤五:获得哈希因子集合HSet内的与所述当前待索引字符串对应的元素,确定对应的当前级哈希表索引为:当前哈希值对所述当前待索引字符串对应的元素的取余结果;
步骤六:判断当前哈希级表索引的参数中的Num值是否等于0,如果是,则记录不存在,访问失败,否则,进入步骤七;
步骤七:当所述当前哈希级表索引具有下一哈希级时,确定当前哈希级表索引的下一级哈希表为当前待访问哈希级,并确定字符串集合中的下一字符串为当前待索引字符串,返回执行步骤四,直到索引表访问结束或中断,执行步骤八;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国农业银行股份有限公司,未经中国农业银行股份有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510075765.6/2.html,转载请声明来源钻瓜专利网。