书签 分享 收藏 举报 版权申诉 / 22

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

  • 上传人:Y948****062
  • 文档编号:1740555
  • 上传时间:2018-07-08
  • 格式:PDF
  • 页数:22
  • 大小:1.28MB
  • 摘要
    申请专利号:

    CN201510087450.3

    申请日:

    2015.02.25

    公开号:

    CN104866521A

    公开日:

    2015.08.26

    当前法律状态:

    实审

    有效性:

    审中

    法律详情:

    实质审查的生效IPC(主分类):G06F 17/30申请日:20150225|||公开

    IPC分类号:

    G06F17/30

    主分类号:

    G06F17/30

    申请人:

    株式会社特迈数据

    发明人:

    崔永宰; 朴相永; 文盛郁; 徐世勋

    地址:

    韩国京畿道

    优先权:

    10-2014-0019730 2014.02.20 KR

    专利代理机构:

    北京康信知识产权代理有限责任公司11240

    代理人:

    余刚; 吴孟秋

    PDF完整版下载: PDF下载
    内容摘要

    本发明涉及处理具有混合存储器的数据库中的查询的设备和方法。本发明提供了用于处理具有内存表格空间和磁盘表格空间的混合存储器的关系数据库系统中的查询的设备和方法。利用本发明的配置,通过扩展表格分区技术以使得关系数据库系统以混合的方式使用磁盘表格空间和内存表格空间,可以实现由于在一个逻辑表格中的不同数据存储的数据辨别并且按照存储的差异创建扫描计划,从而建立旨在访问具有不同属性的存储的查询的最佳扫描计划。

    权利要求书

    权利要求书
    1.  一种用于处理数据库系统中的查询的设备,所述设备包括:
    表格空间元数据,存储关于表格存储在哪个表格空间中的信息,其中,所述表格存储在包括磁盘表格空间和内存表格空间的数据库系统中;
    查询编译单元,在接收到查询语句时,被配置为通过参考关于所述表格空间的信息来检查所述查询语句的处理所需要的表格是存储在所述磁盘表格空间中还是所述内存表格空间中并且创建所述表格的扫描计划;
    查询执行单元,被配置为通过根据由所述查询编译单元创建的所述扫描计划访问所述磁盘表格空间或所述内存表格空间来读取所述表格的数据,并且使用所读取的数据执行所述查询语句的处理。

    2.  根据权利要求1所述的设备,其中,所述查询执行单元被配置为:
    当检查出所述表格存储在所述磁盘表格空间中时,以数据块的形式读取所述表格中的行;并且
    当检查出所述表格存储在所述内存表格空间中时,通过内存页面读取所述表格中的行。

    3.  根据权利要求2所述的设备,其中,所述查询执行单元被配置为在执行所述表格的所述扫描计划的过程中将从所述磁盘表格空间和所述内存表格空间中读取的所述行的存储结构适配成所述行的相同格式。

    4.  根据权利要求1所述的设备,其中,所述查询编译单元被配置为:
    当所述表格是非分区表格时,检查所述表格是存储在所述磁盘表格空间中还是所述内存表格空间中;
    当检查出所述表格存储在所述磁盘表格空间中时,创建针对磁盘表格全扫描的扫描计划;并且
    当检查出所述表格存储在所述内存表格空间中时,创建针对内存表格全扫描的扫描计划。

    5.  根据权利要求4所述的设备,其中,所述查询编译单元进一步被配置为:
    当创建针对磁盘表格全扫描的扫描计划时,检查是否存在所述表格的索引;
    当检查出存在所述表格的索引时,创建针对磁盘索引扫描的扫描计划;并且
    通过比较所述磁盘表格全扫描计划与所述磁盘索引扫描计划的成本选择二者之一。

    6.  根据权利要求4所述的设备,其中,所述查询编译单元进一步被配置为:
    当创建针对内存表格全扫描的扫描计划时,检查是否存在所述表格的索引;
    当检查出存在所述表格的索引时,创建针对内存索引扫描的扫描计划;并且
    通过比较所述内存表格全扫描计划与所述内存索引扫描计划的成本选择二者之一。

    7.  根据权利要求1所述的设备,其中,所述查询编译单元被配置为:
    当所述表格是分区表格时,检查所述分区表格是存储在所述磁盘表格空间和所述内存表格空间的混合存储器中还是所述分区表格存储在所述磁盘表格空间和所述内存表格空间的一个中;并且
    当检查出所述分区表格存储在所述混合存储器中时,创建针对混合全表格扫描的扫描计划。

    8.  根据权利要求7所述的设备,其中,所述查询编译单元进一步被配置为:
    当创建针对混合全表格扫描的扫描计划时,检查是否存在所述表格的索引;
    当检查出存在所述表格的索引时,创建针对混合索引扫描的扫描计划;并且
    通过比较所述混合全表格扫描计划与所述混合索引扫描计划的成本选择二者之一。

    9.  根据权利要求1所述的设备,其中,所述查询编译单元被配置为根据存储所述表格的存储器通过计算读取所述表格所需的成本来创建使处理所述查询语句所需的成本最小化的扫描计划。

    10.  根据权利要求1所述的设备,其中,所述表格被划分为多个分区并且存储在所述磁盘表格空间和所述内存表格空间的一个中;或者所述分区表格根据所述分区表格中的分区键值的重要性存储在所述磁盘表格空间或所述内存表格空间的混合存储器中。

    11.  根据权利要求10所述的设备,其中,每个所述分区表格根据所述分区表格中的具有时间信息的所述分区键值随着时间的推移依次从所述内存表格空间转移到所述磁盘表格空间。

    12.  一种用于处理数据库系统中的查询的方法,所述数据库系统包括内存表格空间和磁盘表格空间的混合存储器,所述方法包括:
    接收所述数据库系统中的查询语句;
    在接收到所述查询语句时,通过参考关于存储所述表格的存储器的信息来检查所述查询语句的处理所需要的表格存储在哪个存储器中;
    依据存储所述表格的存储器创建所述表格的扫描计划;
    根据所述表格的所述扫描计划通过扫描所述磁盘表格空间或所述内存表格空间来读取所述表格的数据;以及
    使用所读取的数据执行所述查询语句的处理。

    13.  根据权利要求12所述的方法,其中,读取所述表格的数据包括:
    当检查出所述表格存储在所述磁盘表格空间中时,以数据块的形式读取所述表格中的行;并且
    当检查出所述表格存储在所述内存表格空间中时,通过内存页面读取所述表格中的行。

    14.  根据权利要求12所述的方法,其中,创建所述表格的扫描计划包括:
    当所述表格是非分区表格时,检查所述表格是存储在所述磁盘表格空间中还是所述内存表格空间中;
    当检查出所述表格存储在所述磁盘表格空间中时,创建针对磁盘表格全扫描的扫描计划;并且
    当检查出所述表格存储在所述内存表格空间中时,创建针对内存表格全扫描的扫描计划。

    15.  根据权利要求14所述的方法,其中,创建针对磁盘表格全扫描的扫描计划进一步包括:
    检查是否存在所述表格的索引;
    当检查出存在所述表格的索引时,创建针对磁盘索引扫描的扫描计划;并且
    通过比较所述磁盘表格全扫描计划与所述磁盘索引扫描计划的成本选择二者之一。

    16.  根据权利要求14所述的方法,其中,创建针对内存表格全扫描的扫描计划进一步包括:
    检查是否存在所述表格的索引;
    当检查出存在所述表格的索引时,创建针对内存索引扫描的扫描计划;并且
    通过比较所述内存表格全扫描计划与所述内存索引扫描计划的成本选择二者之一。

    17.  根据权利要求12所述的方法,其中,创建所述表格的扫描计划进一步包括:
    当所述表格是分区表格时,检查所述分区表格是存储在所述磁盘表格空间和所述内存表格空间的混合存储器中还是所述分区表格存储在所述磁盘表格空间和所述内存表格空间的一个中;并且
    当检查出所述分区表格存储在所述混合存储器中时创建针对混合全扫描的扫描计划。

    18.  根据权利要求17所述的方法,其中,创建针对混合全扫描的扫描计划进一步包括:
    检查是否存在所述表格的索引;
    当检查出存在所述表格的索引时,创建针对混合索引扫描的扫描计划;并且
    通过比较所述混合全表格扫描计划与所述混合索引扫描计划的成本选择二者之一。

    19.  根据权利要求12所述的方法,其中,所述表格被划分为多个分区并且存储在所述磁盘表格空间和所述内存表格空间的一个中;或者所述分区表格根据所述分区表格中的分区键值的重要性存储在所述磁盘表格空间或所述内存表格空间的混合存储器中。

    20.  根据权利要求19所述的方法,其中,每个所述分区表格根据所述分区表格中的具有时间信息的分区键值随着时间的推移依次从所述内存表格空间转移到所述磁盘表格空间。

    说明书

    说明书处理具有混合存储器的数据库中的查询的设备和方法
    相关申请的交叉引用
    本申请基于并且要求于2014年2月20日提交的韩国专利申请第10-2014-0019730号的权益,通过引用将其全部内容结合在此。
    技术领域
    本发明涉及用于关系数据库系统(relational database system)中的表格分区,并且更具体地,涉及处理具有内存表格空间和磁盘表格空间的混合存储器(hybrid storage)的关系数据库系统中的查询的设备和方法,其中表格分区技术被扩展以便以混合的方式使用磁盘表格空间和内存表格空间,该设备和方法能够:实现由于一个逻辑表格中的不同数据存储的数据辨别,按照存储的差异创建扫描计划以建立对于旨在访问具有不同属性的存储的查询的最佳扫描计划,并且通过提供将最新数据存储在内存表格空间中并且将已经过某个时段的旧的数据依次转移到磁盘表格空间中的基于时间分区的表格功能实现有限的存储容量的有效利用同时获得对查询的快速响应。
    背景技术
    最近,关系数据库系统已在许多领域中广泛用于存储数据。在关系数据库系统中,相同类型的数据被逻辑收集并存储在逻辑表格中。组成表格的每个数据项称为行并且一行由多个列组成。
    顺便提及,随着表格(其是具有相同的逻辑属性的数据的集合)的量的增加,提出将表格划分成具有横向分区(或行束)的几个部分(segment)并且存储它们以方便管理的技术。物理水平分区的每个表格部分称为分区表格。利用分区表格的该表格分区技术的使用使用户能够指定放置每个分区表格的物理位置,从而给出同时访问相关表格的分布。
    同时,为了解决快速响应速度的要求,关系数据库系统最近已采用主内存数据库以将数据存储在内存中而不是磁盘中。当关系数据库系统使用内存作为数据存储的主内存时,与传统的基于磁盘的数据库相比,在对表格的插入、删除、和查询操作方面,可预期3至10倍的性能改善。然而,仅能够将数据存储在内存中的数据库系统由于存储容量的限制而不适合于存储大量数据。
    以下是关于基于磁盘的关系数据库与基于内存的关系数据库之间的结构和属性的简短描述。
    首先,为了说明基于磁盘的关系数据库的结构和属性,基于磁盘的关系数据库将表格数据以块的形式存储在磁盘中,响应于来自用户的查询将数据块读取到主内存的缓存区域中,并且在主内存上对数据块进行数据处理。
    在数据处理过程中,当接收到改变数据的DML(数据操纵语言)请求时,缓存中的数据块在内存上被改变并且改变以重做日志(redo log)的形式预先存储在磁盘中,使得当服务器发生故障(go down)时还没有被反映在磁盘中的改变可没有任何损失地被恢复。此外,改变的撤消日志存储在撤消块中以便观看旧版本的全部数据。
    此外,存储在磁盘上的内容以将缓存中改变的无效数据(dirty data)块定期反映到磁盘的方式利用最新数据更新。
    然而,尽管基于磁盘的关系数据库将经常使用的磁盘数据块放在主内存的缓存上以改善性能,但这样会受到磁盘的IO性能的显著影响,因为所有数据块、重做日志、和撤消日志必须被存储在磁盘中。此外,基于磁盘的关系数据库由于缓存的尺寸相对小于磁盘,所以会经受读取数据块的查询执行延迟。
    下面,说明基于内存的关系数据库的结构和属性,与基于磁盘的关系数据库不同,基于内存的关系数据库基本上将表格数据仅存储在内存中以及在磁盘中存储在过去的特定点的利用仅一种类型的备份图像的数据并存储从那时起已经改变的日志数据以用于服务器故障(server down)时恢复数据库。
    因此,当响应于来自用户的查询访问数据时,数据可直接从内存表格中读取。因此,基于内存的关系数据库不会经历在基于磁盘的数据库中出现的将数据块读取到缓存中的磁盘I/O延迟。
    换言之,基于内存的关系数据库不再需要以块的形式的保持数据以优化读取和写入磁盘。此外,基于内存的数据库消除了对保存撤消日志的需要,因为其以创建被连接的行单元中的内存中的数据的过去的版本的方式确保大量读取。此外,因为不存在管理块单元的结构所必需的锁定开销(lock overhead),所以基于内存的关系数据库能够优化对用户查询的处理。
    即使对于引起数据改变的DML,基于内存的关系数据库也仅存储包括改变的重做日志数据。因此,基于内存的数据库在节约磁盘容量方面具有许多优势。
    然而,如上所述,基于内存的关系数据库由于其内存大小的限制而不能用作大量数据存储。
    因此,需要借助具有磁盘和内存的混合存储器的数据库中的表格的横向分区方法的扩展,提供能够实现高响应速度同时解决基于内存的关系数据库中的容量限制的问题的用于查询语句和逻辑表格的最优化方法。
    发明内容
    鉴于以上所述,本发明提供了用于处理具有内存表格空间和磁盘表格空间的混合存储器的关系数据库系统中的查询的设备和方法,在该关系数据库系统中,表格分区技术被扩展以便以混合的方式使用磁盘表格空间和内存表格空间,该设备和方法能够:实现由于一个逻辑表格中的不同数据存储的数据辨别,按照存储的差异创建扫描计划以建立对于旨在访问具有不同属性的存储的查询的最佳扫描计划,并且通过提供将最新数据存储在内存表格空间中并且将已经过某个时段的旧的数据依次转移到磁盘表格空间中的基于时间分区的表格功能实现有限的存储容量的有效利用同时获得对查询的快速响应。
    根据本发明的一方面,提供了一种用于处理数据库系统中的查询的设备,该设备包括:表格空间元数据,存储关于表格存储在哪个表格空间中的信息,其中,表格存储在包含磁盘表格空间和内存表格空间的数据库系统中;查询编译单元,在接收到查询语句时,被配置为通过参考有关表格空间的信息检查处理查询语句所需要的表格是存储在磁盘表格空间中还是内存表格空间中并且创建表格的扫描计划;查询执行单元,被配置为通过根据由查询编译单元创建的扫描计划访问磁盘表格空间或内存表格空间读取表格的数据并且使用读取的数据执行查询语句的处理。
    此外,查询执行单元可被配置为当检查出表格存储在磁盘表格空间中时以数据块的形式读取表格中的行;并且当检查出表格存储在内存表格空间时通过内存页面(memory page)读取表格中的行。
    此外,查询执行单元可被配置为在执行表格的扫描计划的过程中将从磁盘表格空间和内存表格空间中读取的行的存储结构适配(fit)成相同格式的行。
    此外,查询编译单元可被配置为:当表格是非分区表格时,检查表格是存储在磁盘表格空间中还是内存表格空间中;当检查出表格存储在磁盘表格空间中时创建针对磁盘表格全扫描的扫描计划;并且当检查出表格存储在内存表格空间中时创建针对内存表格全扫描的扫描计划。
    此外,查询编译单元可被配置为:当创建针对磁盘表格全扫描的扫描计划时,检查是否存在表格的索引;当检查出存在表格的索引时创建针对磁盘索引扫描的扫描计划;并且通过比较磁盘表格全扫描计划和磁盘索引扫描计划之间的成本选择二者之一。
    此外,查询编译单元可被配置为:当创建针对内存表格全扫描的扫描计划时,检查是否存在表格的索引;当检查出存在表格的索引时创建针对内存索引扫描的扫描计划;并且通过比较内存表格全扫描计划和内存索引扫描计划之间的成本选择二者之一。
    此外,查询编译单元可被配置为:当表格是分区表格时,检查分区表格是存储在磁盘表格空间和内存表格空间的混合存储器中还是分区表格存储在磁盘表格空间和内存表格空间的一个中;并且当检查出分区表格存储在混合存储器中时创建针对混合全表格扫描的扫描计划。
    此外,查询编译单元可被配置为:当创建针对混合全表格扫描的扫描计划时,检查是否存在表格的索引;当检查出存在表格的索引时创建针对混合索引扫描的扫描计划;并且通过比较混合全表格扫描计划和混合索引扫描计划之间的成本选择二者之一。
    此外,查询编译单元可被配置为根据存储表格的存储器(storage)通过计算读取表格所需要的成本创建使处理查询语句所需要的成本最小化的扫描计划。
    此外,表格可被划分为多个分区并且存储在磁盘表格空间和内存表格空间的一个中;或者分区表格可根据分区表格中的分区键值(partition key value)的重要性存储在磁盘表格空间和内存表格空间的混合存储器中。
    此外,每个分区表格可根据分区表格中的具有时间信息的分区键值随着时间的推移依次从内存表格空间转移到磁盘表格空间。
    根据本发明的另一方面,提供了一种用于处理包含内存表格空间和磁盘表格空间的混合存储器的数据库系统中的查询的方法,该方法包括:接收数据库系统中的查询语句;在接收到查询语句时,通过参考有关存储表格的存储的信息检查处理查询语句所需要的表格存储在哪个存储中;按照存储表格的存储创建表格的扫描计划;根据表格的扫描计划通过扫描磁盘表格空间或内存表格空间来读取表格的数据;以及使用读取的数据执行查询语句的处理。
    此外,读取表格的数据可包括:当检查出表格存储在磁盘表格空间中时以数据块的形式读取表格中的行;并且当检查出表格存储在内存表格空间中时通过内存页面读取表格中的行。
    此外,创建表格的扫描计划可包括:当表格是非分区表格时,检查表格是存储在磁盘表格空间中还是内存表格空间中;当检查出表格存储在磁盘表格空间中时创建针对磁盘表格全扫描的扫描计划;并且当检查出表格存储在内存表格空间中时创建针对内存表格全扫描的扫描计划。
    此外,创建针对磁盘表格全扫描的扫描计划可包括:检查是否存在表格的索引;当检查出存在表格的索引时创建针对磁盘索引扫描的扫描计 划;并且通过比较磁盘表格全扫描计划和磁盘索引扫描计划之间的成本选择二者之一。
    此外,创建针对内存表格全扫描的扫描计划可包括:检查是否存在表格的索引;当检查出存在表格的索引时创建针对内存索引扫描的扫描计划;并且通过比较内存表格全扫描计划和内存索引扫描计划之间的成本选择二者之一。
    此外,创建表格的扫描计划可包括:当表格是分区表格时,检查分区表格是存储在磁盘表格空间和内存表格空间的混合存储器中还是分区表格存储在磁盘表格空间和内存表格空间的一个中;并且当检查出分区表格存储在混合存储器中时创建针对混合全扫描的扫描计划。
    此外,创建针对混合全扫描的扫描计划可包括:检查是否存在表格的索引;当检查出存在表格的索引时创建针对混合索引扫描的扫描计划;并且通过比较混合全表格扫描计划和混合索引扫描计划之间的成本选择二者之一。
    此外,表格可划分成多个分区并且存储在磁盘表格空间和内存表格空间的一个中;或者分区表格可根据分区表格中的分区键值的重要性存储在磁盘表格空间和内存表格空间的混合存储器中。
    此外,每个分区表格可根据分区表格中的具有时间信息的分区键值随着时间的推移依次从内存表格空间转移到磁盘表格空间。
    利用本发明的示例性实施方式的配置,通过扩展表格分区技术以便使得关系数据库系统以混合的方式使用磁盘表格空间和内存表格空间,可以实现由于不同数据存储在一个逻辑表格中的数据辨别并且按照存储的差异创建扫描计划,从而建立对于旨在访问具有不同的属性的存储的查询的最佳扫描计划。
    还可以通过提供将最新数据存储在内存表格空间并且将已经过某个时段的旧的数据依次转移到磁盘表格空间中的基于时间的分区表格功能,克服存储容量的局限性同时获得对查询的快速响应。
    附图说明
    通过结合附图给出的实施方式的下列描述,本发明的以上以及其他目标和特征将变得显而易见,其中:
    图1是根据本发明的示例性实施方式的用于具有混合存储器的数据库中的处理查询的设备的详细的框图;
    图2是根据本发明的示例性实施方式的创建磁盘表格和内存表格之间的连接查询(join query)的计划的概念图;
    图3示出了根据本发明的示例性实施方式的使用相同表格空间创建的分区表格的结构和数据;
    图4A至图4D示出了根据本发明的示例性实施方式的使用不同表格空间创建的分区表格的结构和数据;
    图5是根据本发明的示例性实施方式的在执行查询时访问存储在不同的磁盘表格空间和内存表格空间中的表格的概念图;
    图6A和图6B是根据本发明的示例性实施方式的基于表格空间的属性创建访问非分区表格或分区表格的计划的方法的流程图。
    具体实施方式
    在下文中,将参考附图详细描述本发明的实施方式。在以下描述中,如果熟知的功能或构造使得本发明的主题因为不必要的细节变得晦涩,则 将不会对其进行详细描述。此外,如下所述的术语是考虑到本发明中的功能来限定的并且可根据用户或操作者的意图或实践而改变。因此,可基础贯穿说明书的内容进行定义。
    首先,将对创建关系数据库(其支持磁盘表格空间和内存表格空间两者)中的表格的过程进行以下描述。
    以下DDL语句是创建基于磁盘的表格空间的语句的实例。
    CREATE TABLESPACE DISK_TBS datafile'/home/data/TBS.dtf'size 1G;
    在以上DDL语句中,创建命名为DATA_TBS的表格空间作为实际物理磁盘上的存储'/home/data/TBS.dtf'的文件的存储空间。如果另外创建基于DATA_TBS的表格空间的新表格并且表格需要另外的存储空间,则固定尺寸的单元的相邻物理区域从数据文件被分配到表格。当通过来自用户的数据改变DML进行数据插入、删除、或改变时,改变被存储在磁盘中并且当通过查询语句收到数据存取请求时从相关的文件读取改变的数据块。
    例如,利用磁盘表格空间的基于磁盘的表格可通过如在以下实例1中示出的表格创建语句来创建。
    实例1:
    CREATE TABLE ORDERS(order_dt date,
    order_no number,
    cust_id number,
    order_status number,
    order_total number)TABLESPACE DISK_TBS;
    接着,以下是创建基于内存的表格空间的DDL语句的实例:
    CREATE MEMORY TABLESPACE MEMORY_TBS size 10G;
    在以上DDL语句中,命名为MEMORY_TBS的表格空间被分配有10G的内存大小以初始化。
    无论何时内存表格需要存储空间时,由内存表格利用的内存表格空间便被分配有内存表格中的另外的存储空间。将会利用内存表格空间的内存表格可以是具有与已参考基于内存的关系数据库的结构和属性讨论的内存表格具有相似的特点的表格。换言之,基于内存的关系数据库确保通过查询语句访问表格时的即时内存访问并且重做日志仅存储在磁盘中,即使对于没有将数据存储在磁盘中的数据改变DML。
    如以下实例2中列出的,例如,表格空间指定为内存表格空间,从而以与基于磁盘的表格语句相同的方式创建内存表格。
    实例2:
    CREATE TABLE CUSTOMER(cust_id number,
    reg_dt date,
    rank char(10),
    address varchar(100),
    name varchar(32))TABLESPACE MEMORY_TBS;
    此外,数据库是源于基于磁盘的数据库还是基于内存的数据库未包含于数据库内的表格元信息中并且与存储表格的表格空间的属性相区分。
    图1是根据本发明的示例性实施方式的用于具有混合存储器的数据库的处理查询的设备的详细框图。查询处理设备包括表格空间元数据单元102、查询编译单元104、查询执行单元106、磁盘表格空间108、和内存表格空间110。
    在下文中,将参考图1描述查询处理设备的各个部件的操作。
    首先,表格空间元数据单元102包括在关系数据库系统(其包括磁盘表格空间108和内存表格空间110)中的存储表格的磁盘表格空间108或内存表格空间110的属性信息。因此,查询编译单元104可通过参考表格空间元数据单元102检查数据存储在哪个存储中。
    查询编译单元104在接收到查询语句时创建处理查询语句所需的表格扫描计划。当建立扫描计划以访问表格时,查询编译单元104参考表格空间元数据单元102以检查指示存储相关表格的表格空间的元信息并确定相关表格存储在磁盘表格空间108或内存表格空间110的哪个中。此外,查询编译单元104根据存储相关表格的存储通过计算读取相关表格的成本来创建使处理查询语句所需的成本最小化的扫描计划,从而实现能够最佳地执行查询语句的表格扫描计划。
    查询执行单元106借助于包含于由查询编译单元104创建的表格扫描计划中的物理表格信息识别存储相关表格的存储,并且然后通过使用可访问存储相关表格的磁盘表格空间108或内存表格空间110的功能读取相关表格的数据。具体地,如果识别相关表格存储在磁盘表格空间108中,则相关表格以数据块的形式读取。相反,如果识别相关表格存储在内存表格空间110中,则通过内存页面获得行。因为行在它们的存储结构上会不同,所以它们可在表格扫描过程中被适配成相同的结构。在执行表格扫描之后,查询执行单元106基于来自用户的查询语句的结构在行的单元中执行语句的处理,诸如连接(join)、排序(sort)等,其中对各个行的处理可在相同结构的假设下进行。
    在下文中,将通过各种查询描述查询处理设备的操作。
    首先,以下实例3表示使用从上述实例创建的磁盘上的表格ORDER和内存上的表格CUSTOMER来获得由ID是1234的客户(customer)取消的定单(order)的数目以及定单的总数的查询。
    [实例3]
    SELECT count(order_no)order_count,sum(order_total)order_total
    FROM CUSTOMER C,ORDERS O
    WHERE C.cust_id=1234AND
    C.cust_id=O.cust_id AND
    O.order_status='CANCEL';
    图2示出了从查询处理设备可产生的以上查询的执行计划。
    参照图2,换言之,对单个内存上的表格CUSTOMER的访问计划是作为访问存储在内存表格空间110中的索引和表格的计划而产生的(框S200)。
    此外,对单个磁盘上的表格ORDERS的访问计划是作为获得存储在磁盘表格空间108中的索引和表格的访问权而产生的(框S202)并且对磁盘上的表格执行Rowid扫描(框S204)。此后,通过过滤处理利用‘取消’的定单状态信息的注释(notation)对包含客户id的表格进行搜索(框S206)。
    下面,两个表格被连接(框S208),对连接的表格进行聚合(aggregation)(框S210)。在进行内存访问计划之后将在磁盘块进行至行 类型的转换。因此,这种转换在进行嵌套循环连接计划时在没有区分左边或右边中准备的行的类型的情况下进行。
    下面,以下实例4是用于创建典型的分区表格的DDL语句。
    [实例4]
    CREATE TABLE ORDERS(order_dt date,
    order_no number,
    cust_id number,
    order_status number,
    order_total number)
    PARTITION BY RANGE(ORDER_DT)(
    PARTITION ORDERS_P1VALUES LESS THAN
    (TO_DATE(‘2013/01/01’,‘YYYY/MM/DD’)TABLESPACE DISK_TBS,
    PARTITION ORDERS_P2VALUES LESS THAN
    (TO_DATE(‘2013/02/01’,‘YYYY/MM/DD’)TABLESPACE DISK_TBS,
    PARTITION ORDERS_P3VALUES LESS THAN
    (MAXVALUE)TABLESPACE DISK_TBS
    );
    参照以上实例4和在图3中示出的表格的结构,图3示出了通过参考ORDER_DT列的值以如下方式划分数据来将数据存储在总共三个分区表格中的表格ORDERS:在2013年1月1日之前的数据存储在分区表格的ORDERS_P1分区300中;从2013年1月1日到2013年2月1日的数据存储在ORDERS_P2分区302中;并且从2013年2月4日到2013年2月11日的数据存储在ORDERS_P3分区304中。
    另一方面,通常,创建的分区表格可被指定被存储在不同的表格空间中。因此,如上所述的同时支持磁盘表格空间和内存表格空间的数据库可以通过指定不同的表格空间将非分区表格的数据存储在具有不同的物理属性的单独的存储中。
    以下实例5呈现了创建使用混合存储器的表格CUSTOMER的分区表格的实例。
    [实例5]
    CREATE TABLE CUSTOMER(cust_id number,
    reg_dt date,
    rank char(10),
    address varchar(100),
    name varchar(32))
    PARTITION BY LIST(rank)
    (
    partition cust_p1values('VIP')TABLESPACE MEMORY_TBS,
    partition cust_p2values('GOLD')TABLESPACE DISK_TBS1,
    partition cust_p3values('SIVER')TABLESPACE DISK_TBS2,
    partition cust_p4values(default)TABLESPACE DISK_TBS3
    )ENABLE ROW MOVEMENT;
    图4A至图4D示出了表格CUSTOMER的存储结构。如图4A至图4D所示,参考表格CUSTOMER的等级列(rank column)的值,内存表格以如下方式配置:通过指定内存表格空间110上的表格空间将‘VIP’客户数据存储在分区表格的CUST_P1400中;并且磁盘表格以如下方式配置:通过指定单独的磁盘表格空间108上的表格空间,将除VIP客户的等级以外的等级内的数据存储在CUST_P2402中、CUST_P3404、CUST_P4406等中。
    以下实例6呈现了产生11月一个月份的特定客户的购买信息的查询。
    [实例6]
    SELECT count(order_no)order_count,sum(order_total)order_total
    FROM CUSTOMER C,ORDERS O
    WHERE C.cust_id=:B1AND
    C.cust_id=O.cust_id AND
    O.order_dt between(‘2013/11/01’,‘2013/11/30’;
    图5示出了执行以上实例6的查询的计划。
    在图5中,假设计划利用在磁盘上的表格CUSTOMER中产生的全局索引。
    内存上的表格CUSTOMER的扫描计划创建访问存储在内存表格空间110中的索引和表格的计划(框S500)并且对内存中的表格执行混合Rowid扫描(框S502)。此外,磁盘上的表格CUSTOMER的扫描计划创建访问存储在磁盘表格空间108中的索引和表格的计划(框S504)并且对磁盘中的表格执行Rowid扫描(框S506)。此后,利用11月的定单日期的注释通过过滤处理对包含客户id的表格进行搜索(框S508)。下面,两个表格被连接(框S510),并且对连接的表格进行聚合(框S512)。也就是说,当从请求的用户获取唯一ID的值之后获得作为索引的Rowid时,可以通过Rowid确定用户的数据是存储在磁盘表格中还是内存表格中。在客户具有‘VIP’等级并且因此其被允许访问存储表格的情况下,与具有除‘VIP’以外的等级的其他用户不同,可实现在不读取磁盘存储块的情况下直接访问内存表格,这样获得了更高的响应。
    在这点上,因为表格的访问方式可在查询处理设备中的查询执行单元106的执行时间根据Rowid而改变,所以查询处理设备需要通过由查询处理单元106的执行点的判定创建选择访问方式的计划。做这种选择的计划被表示为图5中的‘混合Rowid扫描’节点。选择和执行访问方式的节点的种类如下。
    混合全表格扫描
    混合Rowid扫描
    混合本地索引扫描
    图6A和图6B是示出根据本发明的示例性实施方式的在包括混合存储器的关系数据库系统中的查询处理设备中创建处理查询语句的表格扫 描计划的方法的流程图。在下文中,将参考图1至图6A和图6B详细地描述本发明的示例性实施方式。
    首先,如图6A所示,查询语句被输入到包括内存和磁盘的混合存储器的关系数据库系统中。查询语句可以是请求存储在磁盘表格空间108中的表格;请求存储在内存表格空间110中的表格;以及请求被分区并单独存储在磁盘表格空间108和内存表格空间110两者中的表格,其中表格可以是分区表格或非分区表格的任意一种。
    因此,包括内存和磁盘的混合存储器的关系数据库系统的查询处理设备100通过扩展表格分区方法(其使得能够使用内存表格空间110和磁盘表格空间108的混合存储器)建立针对查询语句的最优表格扫描计划。
    更具体地,当从用户输入查询语句时,查询处理单元100检查处理查询语句所需要的表格是非分区表格还是分区表格(框S600)。
    如果处理查询语句所需要的表格是非分区表格,则查询处理设备100识别存储在表格空间元数据单元102中的表格空间元信息并且检查具有存储在其中的表格的存储是磁盘表格空间108还是内存表格空间110(框S602)。
    然后,如果具有存储在其中的表格的存储通过在框S604处的检查结果被确定为内存表格空间110,则方法进行至框S606,在框S606,查询处理设备100创建针对内存表格全扫描的扫描计划。
    创建如上所述的内存表格全扫描计划之后,查询处理设备100检查是否存在索引(框S608)。
    如果不存在索引,则查询处理设备100利用内存表格全扫描计划处理查询语句。然而,如果存在索引,则查询处理设备100还创建针对内存索引扫描的扫描计划。此后,查询处理设备100利用内存表格全扫描计划和 内存索引扫描计划中的一个处理查询语句,这通过比较它们之间的成本来选择(框S610)。
    然而,如果具有存储在其中的表格的存储通过框S604处的检查结果被确定为磁盘表格空间108,则方法前进至框S612,在框S612,查询处理设备100创建针对磁盘表格全扫描的扫描计划。
    创建如上所述的磁盘表格全扫描计划之后,查询处理设备100检查是否存在索引(框S614)。
    如果不存在索引,则查询处理设备100利用磁盘表格全扫描计划处理查询语句。然而,如果存在索引,那么查询处理设备100还创建针对磁盘索引扫描的扫描计划。此后,查询处理设备100利用磁盘表格全扫描计划和磁盘索引扫描计划中的一个处理查询语句,这通过比较它们之间的成本来选择(框S616)。
    同时,如果处理查询语句所需要的表格是分区表格,则方法通过标签部‘A’进行至如图6B所示的框S620,在框S620,查询处理设备100将删减(pruning)应用至分区表格。
    随后,查询处理设备100对经过删减之后剩下的分区表格的数目计数并且然后检查分区表格的数目是否变为‘1’(框S622)。
    如果检查出分区表格的数目变为‘1’,则方法通过标签‘B’返回至框S602以便重复执行如在框S206至S616中描述的查询语句的处理。
    然而,如果删减之后剩下一个或多个分区表格,则查询处理设备100创建关于剩余的分区表格的分区表格循环计划(框S624)并且检查剩余的表格是否存储在磁盘表格空间108和内存表格空间110的混合存储器中(框S626)。
    如果检查出剩余的多于一个的分区表格仅存储在磁盘表格空间108和内存表格空间110中的一个中,则方法通过标签‘B’返回至框S602以重复执行如在框S206至S616中描述的查询语句的处理。
    然而,如果检查出剩余的多于一个的分区表格存储在磁盘表格空间108和内存表格空间110的混合存储器中,则查询处理设备100创建混合全表格扫描计划(框S628)。
    在创建混合全扫描计划之后,查询处理设备100检查是否存在索引(框S630)。
    如果不存在索引,则查询处理设备100利用混合全表格扫描计划处理查询语句,然而如果存在索引,则查询处理设备100还创建针对混合本地表格扫描的扫描计划。此后,查询处理设备100利用混合全表格扫描计划和混合本地索引扫描计划中的一个处理查询语句,这通过比较它们之间的成本来选择(框S632)。
    如在图6B的框S620中使用的‘将删减应用至分区表格’中执行的任务是指在IF语句存在于分区表格的参考列的值中的情况下计算在创建扫描计划时将要访问的分区表格的方法。例如,当存在IF语句时,如上述查询中的C.rank=‘VIP’,查询处理设备100确定被允许仅访问包括与C.rank=‘VIP’对应的数据的分区表格CUST_P1。经过删减之后,可创建与分区表格相关的查询计划,和与非分区表格相关的查询一样。
    此外,本发明的实施方式借助创建分区表格的技术提供随着时间的推移自动地将分区表格(在其中具有数据)依次从内存表格空间转移至磁盘表格空间的功能。
    以下实例7描绘在包括内存和磁盘的混合存储器的关系数据库系统中依次将分区表格从内存表格空间转移至磁盘表格空间的DDL语句。
    [实例7]
    CREATE TABLE ORDERS(order_dt date,
    order_no number,
    cust_id number,
    order_status number,
    order_total number)
    PARTITION BY TIMELINE(order_dt)AGING INTERVAL'10minute'
    (
    PARTITION orders_p1VALUES WITHIN interval'1day'
    TABLESPACE MEMORY_TBS,
    PARTITION orders_p2VALUES WITHIN interval'7day'
    TABLESPACE DISK_TBS1,
    PARTITION orders_p3VALUES WITHIN MAXVALUE
    TABLESPACE DISK_TBS2
    )ENABLE ROW MOVEMENT;
    如在以上实例7中示出的,当数据重新添加在分区表格中时,通过比较每个分区的参考间隔值和(SYSDATE-order_dt)的值来选择分区的过程执行插入处理。
    此外,数据存储可随着时间的推移而变化;因此,各个分区表格中的数据以在上述DDL语句中指定的‘10分钟’的间隔周期被转移。这种周期转移工作可在关系数据库系统中的工作管理系统中的表格创建的DDL语句的处理过程中被记录以便继续分区表格的转移工作。
    表格分区技术能够辨别存储以便随着时间的流逝存储数据。因此,可以提供用户对于最新数据的查询的更高的响应并且通过将被视为不是太重要的旧数据自动转移到其他表格空间能够有效使用有限的内存表格空间。
    如上所述,本发明的实施方式扩展了表格分区技术以使关系数据库系统以混合的方式使用磁盘表格空间和内存表格空间,从而实现由于在一个逻辑表格中的不同的数据存储的数据辨别,并且按照存储的差异创建扫描计划,从而建立旨在访问具有不同的属性的存储的查询的最佳扫描计划。此外,本发明的实施方式提供将最新数据存储在内存表格空间中并且将过去特定时段的旧数据依次转移到磁盘表格空间中的基于时间的分区表格功能,从而克服存储容量的限制同时获得对查询的快速响应。
    尽管已经对本发明的示例性实施方式进行了描述,但在不背离本发明的范围的情况下可进行各种改变和变形。本发明的实施方式并不限于此。因此,本发明的范围应当通过所附权利要求而不是通过上述实施方式限定。

    关 键  词:
    处理 具有 混合 存储器 数据库 中的 查询 设备 方法
      专利查询网所有文档均是用户自行上传分享,仅供网友学习交流,未经上传用户书面授权,请勿作他用。
    0条评论

    还可以输入200字符

    暂无评论,赶快抢占沙发吧。

    关于本文
    本文标题:处理具有混合存储器的数据库中的查询的设备和方法.pdf
    链接地址:https://www.zhuanlichaxun.net/p-1740555.html
    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2017-2018 zhuanlichaxun.net网站版权所有
    经营许可证编号:粤ICP备2021068784号-1