使用混合查询执行计划的列式缓存查询的制作方法

文档序号:38644033发布日期:2024-07-12 11:46阅读:25来源:国知局
使用混合查询执行计划的列式缓存查询的制作方法


背景技术:

1、数据库管理系统(dbms)是用于管理一个或多个数据库以及用于接收和解决对所管理的数据库的查询的系统。dbms可以管理存储在一个或多个存储装置上并形成一个或多个被管理的数据库的一部分的一个或多个数据表或数据关系。dbms可以读取和写入被管理的表的各个行或列,包括更新、删除和添加记录。

2、dbms可以实现缓存来临时存储数据库数据。缓存可以存储表示基础数据库表的行的数据块。当从其检索缓存块的基础表的对应块在缓存该块之后被修改时,所缓存的块变得无效。无效块不再反映从其缓存数据的基础表中更新的数据。


技术实现思路

1、本公开的方面涉及针对实现列式缓存的数据库管理系统(dbms)生成并执行混合查询执行计划。dbms生成用于在存储一个或多个数据列的列式缓存中检索数据的两个或多个单独计划的混合查询执行计划。在对缓存进行扫描期间,dbms确定缓存中的有效数据和无效数据,并且根据相应的执行计划来执行操作,具体取决于数据的有效性。本公开的方面包括基于在应用不同的混合查询执行计划进行查询执行时预测的成本权衡来生成查询执行计划,以在给定列式缓存中的数据状态的情况下应用估计的更高性能的计划。

2、本公开的方面提供了一种系统,所述系统具有一个或多个处理器,所述一个或多个处理器被配置为:接收对列式缓存中的数据的查询,所述列式缓存包括数据库的表的一个或多个数据列,每个列包括一个或多个数据块;并且响应于接收到所述查询,接收指定跨多个子执行计划的多个操作的混合查询执行计划,所述混合查询执行计划在由所述一个或多个处理器执行时使所述一个或多个处理器响应于所述查询而生成查询结果,其中所述混合查询执行计划包括:第一子执行计划,所述第一子执行计划包括用于扫描所述列式缓存中的有效块的一个或多个第一操作,以及第二子执行计划,所述第二子执行计划包括用于扫描所述列式缓存中的无效块的一个或多个第二操作。

3、本公开的方面提供了一种或多种非暂时性计算机可读存储介质,所述非暂时性计算机可读存储介质编码指令,所述指令在由一个或多个处理器执行时使所述一个或多个处理器执行操作,所述操作包括:接收对列式缓存中的数据的查询,所述列式缓存包括数据库的表的一个或多个数据列,每个列包括一个或多个数据块;以及响应于接收到所述查询,接收指定跨多个子执行计划的多个操作的混合查询执行计划,所述混合查询执行计划在由所述一个或多个处理器执行时使所述一个或多个处理器响应于所述查询而生成查询结果,其中所述混合查询执行计划包括:第一子执行计划,所述第一子执行计划包括用于扫描所述列式缓存中的有效块的一个或多个第一操作,以及第二子执行计划,所述第二子执行计划包括用于扫描所述列式缓存中的无效块的一个或多个第二操作。

4、本公开的方面提供了一种计算机实现的方法,所述计算机实现的方法包括:由一个或多个处理器接收对列式缓存中的数据的查询,所述列式缓存包括数据库的表的一个或多个数据列,每个列包括一个或多个数据块;以及响应于接收到所述查询,由所述一个或多个处理器接收指定跨多个子执行计划的多个操作的混合查询执行计划,所述混合查询执行计划在由所述一个或多个处理器执行时使所述一个或多个处理器响应于所述查询而生成查询结果,其中所述混合查询执行计划包括:第一子执行计划,所述第一子执行计划包括用于扫描所述列式缓存中的有效块的一个或多个第一操作,以及第二子执行计划,所述第二子执行计划包括用于扫描所述列式缓存中的无效块的一个或多个第二操作。

5、本公开的方面可以包括一个或多个特征,包括下面描述的一个或多个特征。在一些示例中,本公开的方面组合地提供了以下所有特征。

6、所述一个或多个处理器还被配置为响应于接收到所述查询:执行所述一个或多个第一操作以扫描所述列式缓存中的有效块,其中在执行所述一个或多个第一操作时,标识所述列式缓存中的无效块;并且执行所述一个或多个第二操作以仅扫描基础表的与所标识的无效块相对应的行。

7、所述一个或多个第一操作包括用于在由所述一个或多个处理器执行时执行列式缓存扫描的操作,并且其中所述一个或多个第二操作包括用于在由所述一个或多个处理器执行时执行行存储扫描的操作。

8、所述行存储扫描是以下项中的一者:顺序扫描、索引扫描、仅索引扫描或位图扫描;并且其中当所述行存储扫描由所述一个或多个处理器执行时,所述一个或多个处理器被配置为仅扫描基础表的与所标识的无效块相对应的行。

9、所述行存储扫描是索引扫描,并且每个无效块包括相应行标识符,所述相应行标识符标识数据库的表中的存储所述块的行;并且其中在根据所述行存储扫描执行所述一个或多个第二操作以仅扫描所标识的无效块时,所述一个或多个处理器还被配置为在确定所述行的相应行标识符与所述无效块中的至少一个的相应行标识符匹配之后,扫描所述数据库的表的一个或多个行中的每个行。

10、所述行存储扫描是顺序扫描;并且其中在根据所述行存储扫描执行所述一个或多个第二操作时,所述一个或多个处理器被配置为仅扫描基础表的与所述列式缓存的所标识的无效块相对应的行。

11、所述行存储扫描是位图扫描;并且其中在根据所述行存储扫描执行所述一个或多个第二操作时,所述一个或多个处理器被配置为生成基础表的与所述列式缓存的所标识的无效块相对应的相应行的位图。

12、在生成所述混合查询执行计划时,所述一个或多个处理器被配置为:针对所述第一子执行计划生成节点和有向链接的第一数据结构,并且针对所述第二子执行计划生成节点和有向链接的第二数据结构,其中数据结构的每个节点表示子执行计划的一个或多个相应操作,每个有向链接将相应的第一节点连接到相应的第二节点,所述相应的第一节点表示在所述子执行计划的执行期间在由所述相应的第二节点表示的一个或多个第二节点操作之前执行的一个或多个第一节点操作;以及生成节点和有向链接的第三数据结构,所述第三数据结构包括通过根节点连接的所述第一数据结构和所述第二数据结构,所述根节点表示一个或多个操作,所述一个或多个操作在由所述一个或多个处理器执行时使所述一个或多个处理器基于由所述一个或多个处理器在执行所述查询时扫描的当前数据块是有效块还是无效块来执行所述第一子执行计划或所述第二子执行计划。

13、在生成所述混合查询执行计划时,所述一个或多个处理器被配置为基于所述列式缓存中的无效块的估计数量来从多个候选查询执行计划中选择所述混合查询执行计划。



技术特征:

1.一种系统,其特征在于,包括:

2.根据权利要求1所述的系统,其特征在于,其中所述一个或多个处理器还被配置为响应于接收到所述查询:

3.根据权利要求2所述的系统,其特征在于,

4.根据权利要求3所述的系统,其特征在于,

5.根据权利要求4所述的系统,其特征在于,

6.根据权利要求4所述的系统,其特征在于,

7.根据权利要求4所述的系统,其特征在于,

8.根据权利要求2所述的系统,其特征在于,其中在生成所述混合查询执行计划时,所述一个或多个处理器被配置为:

9.根据权利要求1所述的系统,其特征在于,其中在生成所述混合查询执行计划时,所述一个或多个处理器被配置为基于所述列式缓存中的无效块的估计数量来从多个候选查询执行计划中选择所述混合查询执行计划。

10.一种计算机实现的方法,其特征在于,包括:

11.根据权利要求10所述的方法,其特征在于,其中所述方法还包括响应于接收到所述查询:

12.根据权利要求11所述的方法,其特征在于,

13.根据权利要求12所述的方法,其特征在于,

14.根据权利要求13所述的方法,其特征在于,

15.根据权利要求13所述的方法,其特征在于,

16.根据权利要求11所述的方法,其特征在于,其中生成所述混合查询执行计划包括:

17.根据权利要求10所述的方法,其特征在于,其中生成所述混合查询执行计划还包括由所述一个或多个处理器基于所述列式缓存中的无效块的估计数量来从多个候选查询执行计划中选择所述混合查询执行计划。

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

19.根据权利要求18所述的计算机可读存储介质,其特征在于,其中所述操作还包括响应于接收到所述查询:

20.根据权利要求19所述的计算机可读存储介质,其特征在于,


技术总结
本公开的方面涉及生成混合查询执行计划以对实现列式缓存的数据库系统执行查询。混合查询执行计划组合用于从列式缓存和基础表中查询和检索数据的查询执行计划。列式缓存按以列为主的格式存储缓存数据,该缓存数据由数据库管理系统按以行为主的格式在逻辑上表示。如本文描述的数据库管理系统可以根据列扫描操作来扫描列数据的有效块。该系统可以标识无效块,并且执行混合查询执行计划的不同子执行计划,以扫描表中的与无效块的数据位置相对应的对应行。

技术研发人员:马晓斌,程讯,维拉尔·萨阿,安扬·库马尔·阿米里西特蒂
受保护的技术使用者:谷歌有限责任公司
技术研发日:
技术公布日:2024/7/11
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1