混合数据库表被存储为行存储和列存储二者。一个或多个技术可以单独使用或组合使用,以便通过调节对处理密集型列存储数据的访问和/或调节处理密集型列存储数据的大小来提高混合表的性能。例如,在插入操作过程中,只有在已经考虑了某些过滤和/或边界条件之后才可以针对列存储数据搜索唯一性违背情况。在另一种技术中,混合表管理器可以基于诸如访问频率或者潜在的业务逻辑来控制将数据移动到列存储。在又一种技术中,混合表的查询可以仅在行存储数据的初始搜索没有返回结果之后才导致搜索列存储数据。
【技术实现步骤摘要】
本专利技术涉及数据库中数据的存储,而且更具体地,涉及以混合表格式的数据库信息的存储。
技术介绍
除非另有说明,本节中所描述的方法不是本申请中的权利要求的现有技术,并且不承认由并入本节即表示现有技术。数据库是以结构化的方式存储数据的电子编档系统。数据库中的主存储结构是表。数据库可以包含多个表,而且每个表可以容纳特定类型的信息。数据库表以水平行和垂直列来存储和组织数据。行通常对应于真实世界的实体或关系,其代表表中的单个记录。列可以指示这些实体或关系的特定属性,诸如“名称”、“地址”或“电话号码”。例如,X公司可以具有包含“客户”表的数据库,“客户”表列出了它的客户的名称、地址和电话号码。每一行可以代表单一的客户,而且列可以代表每个客户的名称、地址和电话号码。数据库通常存储在一维的计算机存储器中。因此,二维的数据库表必须被映射为一维的数据结构以便存储在数据库中。一种映射方法涉及按行将表存储在数据库中(即,面向行的存储模型)。这种方法可以使关于单一的实体的信息保持在一起。例如,按行存储可以首先存储关于第一客户的所有信息,然后存储关于第二客户的所有信息,等等。可替换地,表可以被按行存储在数据库中(即,面向列的存储模型)。这种方法可以使不同实体的相同属性保持在一起。例如,按列存储可以首先存储所有客户的名称,然后存储所有客户的地 数据通常必须以与它被存储的方式相同的方式从表中访问。也就是说,传统的计算机存储技术需要专用查询操作符(operator),其能够访问特定类型的存储模型。例如,行查询操作符用于处理以行格式的存储模型(row-formatted storage models)存储在数据库中的数据,而且列查询操作符用于处理以列格式的存储模型(column-formattedstorage models)存储在数据库中的数据。因而,选择使用哪种存储模型往往取决于数据将被如何使用。面向行的存储模型通常非常适用于事务查询。行存储格式将数据库行强调为可操作的元素,并且通常用于联机事务处理(On-Line Transaction Processing, 0LTP), OLTP涉及相对较大数量的联机事务(行),而且每个事务的特征在于相对更多的数据类型(列)。相比之下,面向列的存储模型一般适用于分析查询。列存储格式将数据库列强调为可操作的元素,并且通常用于关于可以包括基本数据类型的聚合的更少数量的数据类型(列)来对事务(行)总数的子集进行联机分析处理(On-Line AnalyticalProcessing, 0LAP)。以列存储格式的数据库表通常用于为了解决问题而对原始数据进行询问(interrogation)和分析,并用于规划形成业务智能(Business Intelligence, BI)效果的一部分。总之,行存储可以用于检索单个记录,该记录包括许多具有主键条件(primarykey condition)的列。列存储可以用于执行更复杂的功能,诸如对相对较小数量的列进行水口 /彡口口 o因此,传统的查询处理方案被绑定到正被查询的数据库的底层存储模型。然而,在现实中,具有以列格式的存储模型存储的某些数据的数据库可以被要求处理与该数据有关的事务查询,或者具有以行格式的存储模型存储的某些数据的数据库可以被要求处理与该数据有关的分析查询。例如,具有以行格式的存储模型存储的数据的数据库可以接收请求对该数据进行事务处理和分析处理的一组混合的查询。行存储数据库表格式和列存储数据库表格式二者都提供各种好处。例如,行存储格式为数据提供现成的可扩展性,因为它预期越来越多的事务将需要存储在附加行中。然而,行存储表格式对于分析查询(例如,聚合、结合)而言是相对内存密集型(memoryintensive)的,因为它垂直扫描表,这导致在水平存储数据时发生缓存未命中(cachemiss)。相反,列存储格式在允许涉及表结合和聚合的复杂的数据操作方面提供灵活性,以及通过允许利用字典编码对跨多个条目的数据类型内的压缩来提供相对较低的内存消耗。然而,列存储数据库格式通常不允许与行存储表一样容易地操作大量数据。因此,行存储表用作逐行记录访问(诸如利用主键查找的单个记录选择)是更有效的。列存储表用作逐列记录访问(诸如单列聚合)是更好的。对于逐行记录访问,列存储表变为内存密集型,因为数据格式是以列存储的形式垂直组织的,从而在水平访问记录值时发生缓存未命中。对于逐行记录访问,行存储表变为内存密集型,因为数据格式是以行存储的形式水平组织的,从而当读取特定列值时发生缓存未命中。 尽管各种数据库表类型具有各种优点,但是传统上表在业务生命周期的任意时间点通常只能够以行存储或列存储。因此,本公开利用实现存储为行存储和列存储二者的混合数据库表的系统和方法来解决这个和其他问题。
技术实现思路
混合数据库表被存储为行存储和列存储二者。一个或多个技术可以单独使用或组合使用,以便通过调节对处理密集型列存储数据的访问和/或调节处理密集型列存储数据的大小来提高混合表的性能。例如,在插入操作过程中,只有在已经考虑了某些过滤和/或边界条件之后才可以针对列存储数据搜索唯一性违背情况。在另一种技术中,混合表管理器可以基于诸如访问频率或者潜在的业务逻辑的考虑来控制将数据移动到列存储。根据又一种技术,混合表的查询可以导致仅在行存储数据的初始搜索没有返回结果之后才搜索列存储数据。计算机实现的方法的实施例包括,在非临时性计算机可读存储介质中提供数据库,该数据库以应用层语言创建并且包括行分区的存储和列分区的存储。从用户接收查询。基于查询搜索行分区的存储。基于对行分区的存储的搜索,执行优化。只有在优化担保的情况下,才基于查询搜索列分区的存储。向用户返回基于查询的搜索结果。计算机系统的实施例包括:一个或多个处理器;以及软件程序,其能够在计算机系统上运行。该软件程序被配置以从用户接收查询,并且基于查询搜索数据库的行分区的存储,数据库以应用层语言创建并且在非临时性计算机可读存储介质中提供,数据库还包括列分区的存储。基于对行分区的存储的搜索,执行优化。只有在优化担保的情况下,才基于查询搜索列分区的存储。向用户返回基于查询的搜索结果。一种非临时性计算机可读存储介质的实施例具体实施用于执行方法的计算机程序,该方法包括从用户接收查询并基于查询搜索数据库的行分区的存储,数据库以应用层语言创建并且在非临时性计算机可读存储介质中提供,数据库还包括列分区的存储。基于对行分区的存储的搜索,执行优化。只有在优化担保的情况下,才基于查询搜索列分区的存储。向用户返回基于查询的搜索结果。在实施例中,搜索行分区的存储包括执行唯一键搜索。根据一些实施例,优化包括确定行分区的存储的唯一键搜索是否没有返回搜索结果。在具体实施例中,搜索结果是通过合并行分区的存储的搜索结果和列分区的存储的搜索结果形成的。一些实施例还可以包括提供行分区的存储的值的范围。在某些实施例值,优化可以包括确定行分区的存储的搜索是否满足过滤条件,过滤条件包括值的范围。以下详细描述和附图提供了对本专利技术的性质和优点的更好理解。附图说明图1示出了根据实施例的混合表的结构和操作的简化示意图;图2示出了将新的记录插入混合表的实施例的简化示意图;图2A示出了用于将新的记录插入混合表的本文档来自技高网...
【技术保护点】
一种计算机实现的方法,包括:在非临时性计算机可读存储介质中提供数据库,该数据库以应用层语言创建并且包括行分区的存储和列分区的存储;从用户接收查询;基于所述查询搜索行分区的存储;基于对行分区的存储的搜索,执行优化;只有在优化担保的情况下,才基于所述查询搜索列分区的存储;以及向用户返回基于所述查询的搜索结果。
【技术特征摘要】
2011.12.22 US 13/334,7111.一种计算机实现的方法,包括: 在非临时性计算机可读存储介质中提供数据库,该数据库以应用层语言创建并且包括行分区的存储和列分区的存储; 从用户接收查询; 基于所述查询搜索行分区的存储; 基于对行分区的存储的搜索,执行优化; 只有在优化担保的情况下,才基于所述查询搜索列分区的存储;以及 向用户返回基于所述查询的搜索结果。2.如权利要求1所述的计算机实现的方法,其中,搜索行分区的存储包括执行唯一键搜索。3.如权利要求2所述的计算机实现的方法,其中,所述优化包括确定行分区的存储的唯一键搜索是否没有返回搜索结果。4.如权利要求1所述的计算机实现的方法,其中,所述搜索结果是通过合并行分区的存储的搜索结果和列分区的存储的搜索结果形成的。5.如权利要求1所述的计算机实现的方法,还包括,提供行分区的存储的值的范围。6.如权利要求5所述的计算机实现的方法,其中,所述优化包括确定行分区的存储的搜索是否满足过滤条件,所述过滤条件包括所述值的范围。7.一种具体实施计算机程序的非临时性计算机可读存储介质,该计算机程序用于执行方法,该方法包括: 从用户接收查询; 基于所述查询搜索数据库的行分区的存储,所述数据库以应用层语言创建并且在非临时性计算机可读存储介质中提供,所述数据库还包括列分区的存储; 基于对行分区的存储的搜索,执行优化; 只有在优化担保的情况下,才基于所述查询搜索列分区的存储;以及 向用户返回基于所述查询的搜索结果。8.如权利要求7所述的非临时性计算机可读存储介质,其中,搜索行分区的存储包...
【专利技术属性】
技术研发人员:Y永,C程,J李,CB宋,YS孔,SY且,
申请(专利权)人:SAP股份公司,
类型:发明
国别省市: