System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 数据库缓存中的被查询数据的延迟物化制造技术_技高网

数据库缓存中的被查询数据的延迟物化制造技术

技术编号:42845477 阅读:15 留言:0更新日期:2024-09-27 17:15
本公开的方面涉及响应于对实现数据库缓存的数据库的查询而对属性进行延迟物化。被查询数据在数据作为生成对查询的结果的一部分被投影之前,在临时存储器中被物化。数据库管理系统不是在执行查询之前对查询中引用的所有属性进行物化,而是尽可能“延迟”地对属性进行物化——在执行需要属性的操作时。需要属性的操作可以更快地执行,而不是在执行查询之前对所有引用的属性进行物化。

【技术实现步骤摘要】
【国外来华专利技术】


技术介绍

1、数据库管理系统(dbms)是管理数据库并处理接收和解决对被管理数据库的查询的系统。dbms可以管理表,包括形成数据库的一部分的数据关系。dbms可以读取和写入被管理的表的单个行或列。另外,dbms可以更新、删除记录,以及向被管理数据库添加记录。

2、dbms可以实现缓存来临时存储数据库数据。缓存可以存储表示基础数据库表的行的数据块。缓存中的数据可以按以列为主或以行为主的格式存储。表的按以列为主的格式存储的元素在存储器中按列连续存储,而按以行为主的格式存储的元素在存储器中按行连续存储。


技术实现思路

1、本公开的方面涉及被查询数据的延迟物化。被查询数据在数据作为生成对由数据库管理系统接收的查询的响应的一部分被投影之前,在临时存储器中被物化。由数据库管理系统管理的数据库可以包括具有各种特性或性质(在本文中被称为“属性”)的数据条目。数据可以根据其属性被查询。如本文中配置的系统不是在执行查询之前对查询中引用的所有属性进行物化,而是尽可能“延迟”地对属性进行物化——在执行需要属性作为输入的操作时。通过首先对用于执行查询的操作的所需数据进行物化,本公开的方面提供了比其中在数据库管理系统执行查询之前对查询中引用的所有数据进行物化的其他方法更有效的查询解决。通过仅对所需属性进行物化,然后对查询中引用的其余属性进行物化,可以更快地执行查询操作。通过检索仅在执行查询执行计划中的当前查询操作时需要的用于物化的属性,可以更高效地查询存储在被检索时可能会被转换成以行为主的格式的列数据的列式缓存。

2、本公开的方面包括一种系统,其包括:一个或多个处理器,该一个或多个处理器被配置为:接收对包括一个或多个表的数据库中的数据的查询,每个表包括一个或多个相应属性,该查询引用多个属性;接收查询执行计划,该查询执行计划定义用于通过跨一个或多个执行步骤执行一个或多个查询操作来执行该查询的顺序;针对该一个或多个查询操作中的每一者,确定该多个属性中的执行该查询操作所需的相应一个或多个属性;并且响应于接收到该查询,根据该查询执行计划来执行该一个或多个查询操作,其中在该查询执行计划的每个执行步骤处,该一个或多个处理器被配置为从缓存来自该一个或多个表的多个属性的数据库缓存中检索在当前执行步骤期间执行相应查询操作所需的相应一个或多个所需属性。

3、一种计算机实现的方法,其包括:由一个或多个处理器接收对包括一个或多个表的数据库的数据的查询,该一个或多个表包括一个或多个相应属性;由该一个或多个处理器接收查询执行计划,该查询执行计划定义用于通过跨一个或多个执行步骤执行一个或多个查询操作来执行该查询的顺序;由该一个或多个处理器并且针对该一个或多个查询操作中的每一者,确定该多个属性中的执行该查询操作所需的相应一个或多个属性;以及响应于接收到该查询,由该一个或多个处理器根据该查询执行计划来执行该一个或多个查询操作,其中在该查询执行计划的每个执行步骤处,从缓存来自该一个或多个表的多个属性的缓存中检索在当前执行步骤期间执行相应查询操作所需的相应一个或多个所需属性。

4、本公开的方面提供了一种或多种非暂时性计算机可读存储介质,所述非暂时性计算机可读存储介质对指令进行编码,该指令在由一个或多个处理器执行时使该一个或多个处理器执行操作,该操作包括:接收对包括一个或多个表的数据库的数据的查询,每个表包括一个或多个相应属性,该查询引用多个属性;接收查询执行计划,该查询执行计划定义用于跨一个或多个执行步骤执行一个或多个查询操作的顺序;针对该一个或多个查询操作中的每一者,确定该多个属性中的执行该查询操作所需的相应一个或多个属性;以及响应于接收到该查询,根据该查询执行计划来执行该一个或多个查询操作,其中在该查询执行计划的每个执行步骤处,从缓存来自该一个或多个表的多个属性的缓存中检索在当前执行步骤期间执行相应查询操作所需的相应一个或多个所需属性。

5、本公开的方面可以包括以下特征中的一者或多者。在一些示例中,本公开的方面可以组合地一起包括所有特征。

6、在针对该一个或多个查询操作中的每一者确定该多个属性中的执行该查询操作所需的相应一个或多个属性时,该一个或多个处理器被配置为:确定在接收到的查询中被指定为用于执行该查询操作的操作数或条件的一个或多个属性。

7、该一个或多个查询操作包括用于根据连接条件连接两个或更多个表的一个或多个连接操作;并且其中在针对该一个或多个查询操作中的每一者确定该多个属性中的执行该查询操作所需的相应一个或多个属性时,该一个或多个处理器被配置为确定根据该连接条件两个或更多个属性是执行该连接操作的所需属性。

8、该缓存是列式缓存,该列式缓存被配置为将属性缓存在一个或多个列式单元中,每个列式单元与相应的列式单元索引相对应并且包括一个或多个相应行,每个行与该列式单元内的相应行索引相对应,并且其中该一个或多个处理器还被配置为:存储该查询中引用的每个属性的相应列式单元索引和相应行索引;使用每个所需属性的所存储的相应列式单元索引和相应行索引来检索该一个或多个所需属性;并且在检索该一个或多个所需属性之后,使用每个其余属性的所存储的相应列式单元索引和相应行索引来检索该查询中引用的其余属性。

9、在检索该其余属性时,该一个或多个处理器被配置为针对每个执行步骤:针对该查询执行计划的当前执行步骤,确定该其余属性中的在该当前执行步骤期间执行相应查询操作所需的一个或多个属性;检索该其余属性中的在该当前执行步骤期间执行该相应查询操作所需的一个或多个属性;并且然后,检索在该当前执行步骤期间执行该相应查询操作不需要的其余属性。

10、在从该缓存中检索用于该查询操作的相应一个或多个所需属性时,该一个或多个处理器还被配置为仅在该查询操作由该一个或多个处理器执行的查询执行计划的执行步骤期间,检索用于该查询操作的相应一个或多个所需属性。

11、其中在从该缓存中检索用于该查询操作的相应一个或多个所需属性时,该一个或多个处理器还被配置为:扫描该缓存以仅检索用于仅由该一个或多个处理器在该当前执行步骤期间执行的查询操作的相应一个或多个所需属性;并且在该当前执行步骤期间执行该查询操作之后,在该当前执行步骤之后的下一个执行步骤期间执行下一个查询操作,其中在执行该下一个查询操作时,该一个或多个处理器被配置为扫描该缓存的属性以仅检索用于执行该下一个查询操作的一个或多个所需属性。

12、在针对该一个或多个查询操作中的每一者确定该多个属性中的执行该查询操作所需的相应一个或多个属性时,该一个或多个处理器被配置为:生成表示该查询中引用的每个属性的属性依赖关系的数据结构,第一属性的属性依赖关系包括表示零个或更多个子属性的数据,该零个或更多个子属性是在比其中需要该第一属性的查询操作的执行步骤更早的相应执行步骤处执行的一个或多个查询操作的相应结果属性。

13、该一个或多个处理器还被配置为:从表示每个属性的属性依赖关系的数据结构中识别该第一属性的零个或更多个子属性;并且在其中本文档来自技高网...

【技术保护点】

1.一种系统,包括:

2.如权利要求1所述的系统,其中在针对所述一个或多个查询操作中的每一者确定所述多个属性中的执行所述查询操作所需的相应一个或多个属性时,所述一个或多个处理器被配置为:

3.如权利要求2所述的系统,

4.如权利要求1所述的系统,

5.如权利要求4所述的系统,

6.如权利要求1所述的系统,其中在从所述缓存中检索用于所述查询操作的所述相应一个或多个所需属性时,所述一个或多个处理器还被配置为仅在所述查询操作由所述一个或多个处理器执行的所述查询执行计划的所述执行步骤期间,检索用于所述查询操作的所述相应一个或多个所需属性。

7.如权利要求1所述的系统,其中在从所述缓存中检索用于所述查询操作的所述相应一个或多个所需属性时,所述一个或多个处理器还被配置为:

8.如权利要求1所述的系统,

9.如权利要求8所述的系统,

10.一种计算机实现的方法,包括:

11.如权利要求10所述的方法,其中针对所述一个或多个查询操作中的每一者确定所述多个属性中的执行所述查询操作所需的相应一个或多个属性包括确定在所接收到的查询中被指定为用于执行所述查询操作的操作数或条件的一个或多个属性。

12.如权利要求10所述的方法,

13.如权利要求12所述的方法,

14.如权利要求10所述的方法,其中从所述缓存中检索用于所述查询操作的所述相应一个或多个所需属性包括仅在所述查询操作由所述一个或多个处理器执行的所述查询执行计划的所述执行期间,检索用于所述查询操作的所述相应一个或多个所需属性。

15.如权利要求10的方法,其中检索所述相应一个或多个属性包括:

16.如权利要求10所述的方法,

17.如权利要求16所述的方法,其中所述方法还包括:

18.一种或多种非暂时性计算机可读存储介质,所述非暂时性计算机可读存储介质对指令进行编码,所述指令在由一个或多个处理器执行时使所述一个或多个处理器执行操作,所述操作包括:

19.如权利要求18所述的计算机可读存储介质,其中针对所述一个或多个查询操作中的每一者确定所述多个属性中的执行所述查询操作所需的相应一个或多个属性包括确定在所接收到的查询中被指定为用于执行所述查询操作的操作数或条件的一个或多个属性。

20.如权利要求18所述的计算机可读存储介质,

...

【技术特征摘要】
【国外来华专利技术】

1.一种系统,包括:

2.如权利要求1所述的系统,其中在针对所述一个或多个查询操作中的每一者确定所述多个属性中的执行所述查询操作所需的相应一个或多个属性时,所述一个或多个处理器被配置为:

3.如权利要求2所述的系统,

4.如权利要求1所述的系统,

5.如权利要求4所述的系统,

6.如权利要求1所述的系统,其中在从所述缓存中检索用于所述查询操作的所述相应一个或多个所需属性时,所述一个或多个处理器还被配置为仅在所述查询操作由所述一个或多个处理器执行的所述查询执行计划的所述执行步骤期间,检索用于所述查询操作的所述相应一个或多个所需属性。

7.如权利要求1所述的系统,其中在从所述缓存中检索用于所述查询操作的所述相应一个或多个所需属性时,所述一个或多个处理器还被配置为:

8.如权利要求1所述的系统,

9.如权利要求8所述的系统,

10.一种计算机实现的方法,包括:

11.如权利要求10所述的方法,其中针对所述一个或多个查询操作中的每一者确定所述多个属性中的执行所述查询操作所需的相应一个或多个属性包括确定在所接收到的查询中被指定为用于执...

【专利技术属性】
技术研发人员:马晓滨程勋维拉尔·夏安詹·库马尔·阿米里谢蒂
申请(专利权)人:谷歌有限责任公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1