处理具有混合存储器的数据库中的查询的设备和方法

文档序号:8543721阅读:338来源:国知局
处理具有混合存储器的数据库中的查询的设备和方法
【专利说明】处理具有混合存储器的数据库中的查询的设备和方法
[0001]相关申请的交叉引用
[0002]本申请基于并且要求于2014年2月20日提交的韩国专利申请第10-2014-0019730号的权益,通过引用将其全部内容结合在此。
技术领域
[0003]本发明涉及用于关系数据库系统(relat1nal database system)中的表格分区,并且更具体地,涉及处理具有内存表格空间和磁盘表格空间的混合存储器(hybridstorage)的关系数据库系统中的查询的设备和方法,其中表格分区技术被扩展以便以混合的方式使用磁盘表格空间和内存表格空间,该设备和方法能够:实现由于一个逻辑表格中的不同数据存储的数据辨别,按照存储的差异创建扫描计划以建立对于旨在访问具有不同属性的存储的查询的最佳扫描计划,并且通过提供将最新数据存储在内存表格空间中并且将已经过某个时段的旧的数据依次转移到磁盘表格空间中的基于时间分区的表格功能实现有限的存储容量的有效利用同时获得对查询的快速响应。
【背景技术】
[0004]最近,关系数据库系统已在许多领域中广泛用于存储数据。在关系数据库系统中,相同类型的数据被逻辑收集并存储在逻辑表格中。组成表格的每个数据项称为行并且一行由多个列组成。
[0005]顺便提及,随着表格(其是具有相同的逻辑属性的数据的集合)的量的增加,提出将表格划分成具有横向分区(或行束)的几个部分(segment)并且存储它们以方便管理的技术。物理水平分区的每个表格部分称为分区表格。利用分区表格的该表格分区技术的使用使用户能够指定放置每个分区表格的物理位置,从而给出同时访问相关表格的分布。
[0006]同时,为了解决快速响应速度的要求,关系数据库系统最近已采用主内存数据库以将数据存储在内存中而不是磁盘中。当关系数据库系统使用内存作为数据存储的主内存时,与传统的基于磁盘的数据库相比,在对表格的插入、删除、和查询操作方面,可预期3至10倍的性能改善。然而,仅能够将数据存储在内存中的数据库系统由于存储容量的限制而不适合于存储大量数据。
[0007]以下是关于基于磁盘的关系数据库与基于内存的关系数据库之间的结构和属性的简短描述。
[0008]首先,为了说明基于磁盘的关系数据库的结构和属性,基于磁盘的关系数据库将表格数据以块的形式存储在磁盘中,响应于来自用户的查询将数据块读取到主内存的缓存区域中,并且在主内存上对数据块进行数据处理。
[0009]在数据处理过程中,当接收到改变数据的DML(数据操纵语言)请求时,缓存中的数据块在内存上被改变并且改变以重做日志(redo log)的形式预先存储在磁盘中,使得当服务器发生故障(go down)时还没有被反映在磁盘中的改变可没有任何损失地被恢复。此夕卜,改变的撤消日志存储在撤消块中以便观看旧版本的全部数据。
[0010]此外,存储在磁盘上的内容以将缓存中改变的无效数据(dirty data)块定期反映到磁盘的方式利用最新数据更新。
[0011]然而,尽管基于磁盘的关系数据库将经常使用的磁盘数据块放在主内存的缓存上以改善性能,但这样会受到磁盘的1性能的显著影响,因为所有数据块、重做日志、和撤消日志必须被存储在磁盘中。此外,基于磁盘的关系数据库由于缓存的尺寸相对小于磁盘,所以会经受读取数据块的查询执行延迟。
[0012]下面,说明基于内存的关系数据库的结构和属性,与基于磁盘的关系数据库不同,基于内存的关系数据库基本上将表格数据仅存储在内存中以及在磁盘中存储在过去的特定点的利用仅一种类型的备份图像的数据并存储从那时起已经改变的日志数据以用于服务器故障(server down)时恢复数据库。
[0013]因此,当响应于来自用户的查询访问数据时,数据可直接从内存表格中读取。因此,基于内存的关系数据库不会经历在基于磁盘的数据库中出现的将数据块读取到缓存中的磁盘I/o延迟。
[0014]换言之,基于内存的关系数据库不再需要以块的形式的保持数据以优化读取和写入磁盘。此外,基于内存的数据库消除了对保存撤消日志的需要,因为其以创建被连接的行单元中的内存中的数据的过去的版本的方式确保大量读取。此外,因为不存在管理块单元的结构所必需的锁定开销(lock overhead),所以基于内存的关系数据库能够优化对用户查询的处理。
[0015]即使对于引起数据改变的DML,基于内存的关系数据库也仅存储包括改变的重做日志数据。因此,基于内存的数据库在节约磁盘容量方面具有许多优势。
[0016]然而,如上所述,基于内存的关系数据库由于其内存大小的限制而不能用作大量数据存储。
[0017]因此,需要借助具有磁盘和内存的混合存储器的数据库中的表格的横向分区方法的扩展,提供能够实现高响应速度同时解决基于内存的关系数据库中的容量限制的问题的用于查询语句和逻辑表格的最优化方法。

【发明内容】

[0018]鉴于以上所述,本发明提供了用于处理具有内存表格空间和磁盘表格空间的混合存储器的关系数据库系统中的查询的设备和方法,在该关系数据库系统中,表格分区技术被扩展以便以混合的方式使用磁盘表格空间和内存表格空间,该设备和方法能够:实现由于一个逻辑表格中的不同数据存储的数据辨别,按照存储的差异创建扫描计划以建立对于旨在访问具有不同属性的存储的查询的最佳扫描计划,并且通过提供将最新数据存储在内存表格空间中并且将已经过某个时段的旧的数据依次转移到磁盘表格空间中的基于时间分区的表格功能实现有限的存储容量的有效利用同时获得对查询的快速响应。
[0019]根据本发明的一方面,提供了一种用于处理数据库系统中的查询的设备,该设备包括:表格空间元数据,存储关于表格存储在哪个表格空间中的信息,其中,表格存储在包含磁盘表格空间和内存表格空间的数据库系统中;查询编译单元,在接收到查询语句时,被配置为通过参考有关表格空间的信息检查处理查询语句所需要的表格是存储在磁盘表格空间中还是内存表格空间中并且创建表格的扫描计划;查询执行单元,被配置为通过根据由查询编译单元创建的扫描计划访问磁盘表格空间或内存表格空间读取表格的数据并且使用读取的数据执行查询语句的处理。
[0020]此外,查询执行单元可被配置为当检查出表格存储在磁盘表格空间中时以数据块的形式读取表格中的行;并且当检查出表格存储在内存表格空间时通过内存页面(memorypage)读取表格中的行。
[0021]此外,查询执行单元可被配置为在执行表格的扫描计划的过程中将从磁盘表格空间和内存表格空间中读取的行的存储结构适配(fit)成相同格式的行。
[0022]此外,查询编译单元可被配置为:当表格是非分区表格时,检查表格是存储在磁盘表格空间中还是内存表格空间中;当检查出表格存储在磁盘表格空间中时创建针对磁盘表格全扫描的扫描计划;并且当检查出表格存储在内存表格空间中时创建针对内存表格全扫描的扫描计划。
[0023]此外,查询编译单元可被配置为:当创建针对磁盘表格全扫描的扫描计划时,检查是否存在表格的索引;当检查出存在表格的索引时创建针对磁盘索引扫描的扫描计划;并且通过比较磁盘表格全扫描计划和磁盘索引扫描计划之间的成本选择二者之一。
[0024]此外,查询编译单元可被配置为:当创建针对内存表格全扫描的扫描计划时,检查是否存在表格的索引;当检查出存在表格的索引时创建针对内存索引扫描的扫描计划;并且通过比较内存表格全扫描计划和内存索引扫描计划之间的成本选择二者之一。
[0025]此外,查询编译单元可被配置为:当表格是分区表格时,检查分区表格是存储在磁盘表格空间和内存表格空间的混合存储器中还是分区表格存储在磁盘表格空间和内存表格空间的一个中;并且当检查出分区表格存储在混合存储器中时创建针对混合全表格扫描的扫描计划。
[0026]此外,查询编译单元可被配置为:当创建针对混合全表格扫描的扫描计划时,检查是否存在表格的索引;当检查出存在表格的索引时创建针对混合索引扫描的扫描计划;并且通过比较混合全表格扫描计划和混合索引扫描计划之间的成本选择二者之一。
[0027]此外,查询编译单元可被配置为根据存储表格的存储器(storage)通过计算读取表格所需要的成本创建使处理查询语句所需要的成本最小化的扫描计划。
[0028]此外,表格可被划分为多个分区并且存储在磁盘表格空间和内存表格空间的一个中;或者分区表格可根据分区表格中的分区键值(partit1n key value)的重要性存储在磁盘表格空间和内存表格空间的混合存储器中。
[0029]此外,每个分区表格可根据分区表格中的具有时间信息的分区键值随着时间的推移依次从内存表格空间转移到磁盘表格空间。
[0030]根据本发明的另一方面,提供了一种用于处理包含内存表格空间和磁盘表格空间的混合存储器的数据库系统中的查询的方法,该方法包括:接收数据库系统中的查询语句;在接收到查询语句时,通过参考有关存储表格的存储的信息检查处理查询语句所需要的表格存储在哪个存储中;按照存储表格的存储创建表格的扫描计划;根据表格的扫描计划通过扫描磁盘表格空间或内存表格空间来读取表格的数据;以及使用读取的数据执行查询语句的处理。
[0031]此外,读取表格的数据可包括:当检查出表格存储在磁盘表格空间中时以数据块的形式读取表格中的行;并且当检查出表格存储在内存表格空间中时通过内存页面读取表格中的行。
[0032]此外,创建表格的扫描计划可包括:当表格是非分区表格时,检查表格是存储在磁盘表格空间中还是内存表格空间中;当检查出表格存储在磁盘表格空间中时创建针对磁盘表格全扫描的扫描计划;并且当检查出表格存储在内存表格空间中时创建针对内存表格全扫描的扫描计划。
[0033]此外,创建针对磁盘表格全扫描的扫描计划可包括:检查是否存在表格的索引;当检查出存在表格的索引时创建针对磁盘索引扫描的扫描计划;并且通过比较磁盘表格全扫描计划和磁盘索引扫描计划之间的成本选择二者之一。
[0034]此外,创建针对内存表格全扫描的扫描计划可包括:检查是否存在表格的索引;当检查出存在表格的索引时创建针对内存索引扫描的扫描计划;并且通过比较内存表格全扫描计划和内存索引扫描计划之间的成本选择二者之一。
[0035]此外,创建表格的扫描计划可包括:当表格是分区表格时,检查分区表格是存储在磁盘表格空间和内存表格空间的混合存储器中还是分区表格存储在磁盘表格空间和内存表格空间的一个中;并且当检查出分区表格存储在混合存储器中时创建针对混合全扫描的扫描计划。
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1