【技术实现步骤摘要】
智能查询计划缓存大小管理
技术介绍
[0001]查询计划(也称为“查询执行计划”)是诸如结构化查询语言(SQL)服务器的数据库管理系统(DBMS)为了完成查询而执行的步骤序列。当在DBMS中第一次运行查询时,可以编译查询以生成对应的查询计划,该对应的查询计划可以被存储在称为“查询计划缓存”的存储器中,该存储器也被称为“查询执行计划缓存”,或者简称为“计划缓存”,并且这些术语可以在本文描述的任何示例中互换使用。因此,当再次运行相同的查询时,DBMS不需要重新生成查询计划。相反,它可以重用存储在查询计划缓存中的缓存查询计划,从而提高DBMS的效率。
[0002]查询计划缓存的大小对于DBMS的性能是重要的。如果查询计划缓存的大小太大,则一些查询计划缓存空间可能没有使用,导致宝贵的缓存存储器的浪费,否则该缓存存储器可以用于其他目的。另一方面,如果查询计划缓存的大小太小,则不是所有生成的查询计划都可以被存储在查询计划缓存中,并且根据某些淘汰(eviction)策略,一些查询计划不得不从查询计划缓存中被淘汰。结果,当存在其对应的查询计划已经从查询计划缓存中被淘汰的传入查询时,该查询将不得不再次被编译,从而导致查询执行的延迟。
[0003]因此,仍然需要一种用于管理DBMS中的查询计划缓存的大小的改进的系统和方法。
附图说明
[0004]图1是示例数据库管理系统的总体框图。
[0005]图2是示例智能缓存管理器的框图。
[0006]图3是示出智能查询计划缓存大小管理的示例总体方法的流程图。
[000 ...
【技术保护点】
【技术特征摘要】
1.一种计算机实施的方法,包括:在数据库管理系统中的多个传入查询的执行期间测量查询局部性,其中数据库管理系统包括查询执行计划缓存,所述查询执行计划缓存具有能够存储为所述多个传入查询生成的查询执行计划中的至少一些的大小;以及基于所测量的查询局部性,调整查询执行计划缓存的大小。2.根据权利要求1所述的方法,其中,测量查询局部性包括累积所述多个传入查询的提升距离。3.根据权利要求2所述的方法,其中,如果传入查询具有存储在查询执行计划缓存中的生成的查询执行计划,则所述传入查询的提升距离基于查询执行计划缓存中的所述生成的查询执行计划的优先级顺序来确定。4.根据权利要求2所述的方法,其中,如果传入查询不具有存储在查询执行计划缓存中的生成的查询执行计划,则所述传入查询的提升距离被设置为存储在所述查询执行计划缓存中的查询执行计划的计数。5.根据权利要求1所述的方法,其中,调整所述查询执行计划缓存的大小包括:如果所测量的查询局部性已经在时间窗口内降低,则增加所述查询执行计划缓存的大小。6.根据权利要求5所述的方法,其中,增加所述查询执行计划缓存的大小包括将额外缓存分配给查询执行计划缓存,其中额外缓存的大小是预定义最大缓存大小和分配所述额外缓存之前的查询执行计划缓存的大小之间的差的预定义分数。7.根据权利要求5所述的方法,其中,所述时间窗口具有预定义持续时间,或者具有当预定数量的传入查询被提交以用于执行时的持续时间。8.根据权利要求1所述的方法,其中,调整所述查询执行计划缓存的大小包括:如果所测量的查询局部性已经在时间窗口内提高,则减少所述查询执行计划缓存的大小。9.根据权利要求8所述的方法,其中,减少所述查询执行计划缓存的大小包括从所述查询执行计划缓存中移除缓存部分,其中所述缓存部分具有预定义大小。10.根据权利要求8所述的方法,其中,所述时间窗口具有预定义持续时间,或者具有当预定数量的传入查询被提交以用于执行时的持续时间。11.一种计算系统,包括:存储器;一个或多个硬件处理器,耦合到存储器;和一个或多个计算机可读存储介质,存储指令,所述指令在被加载到存储器中时使得所述一个或多个硬件处理器执行操作,所述操作包括:在数据库管理系统中的多个传入查询的执行期间测量查询局部性,其中数据库管理系统包括查询执行计划缓存,所述查询执行计划缓存具有能够存储为所述多个传入查询生成的查询执行计划中的至少一些的大小;以及基于所测量的查询局部性,调整所述查询执行计划缓存的大小。12.根据权利要求11所述的系统,其中,测量查询局部性包括累积所述多个传入查询的提升距离,其中累积提升距离的增加指示查询局部性的降低,并且累积提升距离的减少指示查询局部性的提高。13....
【专利技术属性】
技术研发人员:J阮,SG李,S李,B全,HJ尹,J成,
申请(专利权)人:SAP欧洲公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。