System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind()
【技术实现步骤摘要】
本申请涉及数据库,尤其涉及一种缓存管理方法、系统、计算设备集群、计算机可读存储介质、计算机程序产品。
技术介绍
1、数据库(database,db)是结构化数据(一般以电子形式存储在计算机系统中)的有组织的集合。为了提高数据处理和查询效率,数据库通常以行和列的形式将数据存储在一系列的数据库表中,支持用户便捷地访问、管理、修改、更新、控制和组织数据。
2、数据库支持使用结构化查询语言(structured query language,sql)来查询、操作和定义数据,进行数据访问控制。例如,应用可以通过sql语句查询数据库。在接收到sql语句时,数据库管理系统(database management systems,dbms)通常可以根据sql语句进行查询优化,生成执行计划(execution plan)。
3、执行计划,也称作查询计划或者解释计划,是数据库管理系统执行sql语句的具体步骤。例如,查询计划可以包括通过索引还是全表扫描访问表中的数据,连接查询的实现方式和连接的顺序等。
4、数据库的查询优化比较耗时。相同的sql语句可以被多次执行。如果对每个sql语句只优化一次并生成查询计划,然后缓存查询计划并多次复用,就可以节省大量优化时间,提升数据库查询效率。
5、目前,数据库管理系统采用最近最少使用(least recently used,lru)算法进行缓存管理。具体地,数据库管理系统根据sql语句的访问频率管理缓存如cache中的查询计划,一个sql语句执行次数越多,该sql语
6、然而,基于lru算法进行缓存管理存在缓存命中率低,导致数据库整体查询性能比较低下的问题,查询成本比较高昂,难以满足业务需求。
技术实现思路
1、本申请提供了一种缓存管理方法,该方法能够提高缓存命中率,从而大幅提升了数据库整体查询性能,降低查询成本,满足了业务需求。本申请还提供了该方法对应的数据库管理系统、计算设备集群、计算机可读存储介质以及计算机程序产品。
2、第一方面,本申请提供了一种缓存管理方法。该方法可以由数据库管理系统执行。数据库管理系统可以是软件系统,该软件系统部署在计算设备集群中。计算设备集群执行数据库管理系统的程序代码,从而执行本申请的缓存管理方法。在一些可能的实现方式中,数据库管理系统也可以是硬件系统,例如是具有缓存管理功能的计算设备集群。
3、具体地,数据库管理系统可以接收第一sql语句,然后根据第一sql语句的语义,预测数据库在目标时间段的工作负载,其中,数据库在目标时间段的工作负载包括在目标时间段执行的至少一个第二sql语句,接着根据数据库在目标时间段的工作负载,对缓存中的查询计划进行管理。
4、该方法基于预测结果提前预加载将要执行的sql语句对应的查询计划到缓存中,提高缓存命中率。并且,在预测工作负载时,结合了sql语句的语义,能够挖掘不同sql语句的语义相关性,提高了预测准确度,进一步提高了缓存命中率。如此,大幅提升了数据库整体查询性能,降低查询成本,满足了业务需求。
5、在一些可能的实现方式中,数据库管理系统可以从第一sql语句,获取sql语义向量,接着根据sql语义向量,通过工作负载预测模型,获得数据库在目标时间段的工作负载。
6、该方法基于sql语义向量和工作负载预测模型预测工作负载,由此提升预测的准确度,从而能够提高缓存命中率。
7、在一些可能的实现方式中,数据库管理系统可以根据sql语义向量,确定第一sql语句所归属的聚类簇的中心向量,该聚类簇包括语义相似度大于预设值的多条sql语句。接着,数据库管理系统可以将中心向量输入工作负载预测模型,获得数据库在目标时间段的工作负载。
8、该方法中的工作负载预测模型以sql语句所归属的聚类簇的中心向量为输入、输出,从而可以对规模庞大的sql语句进行工作负载预测,提升了负载预测的效率。
9、在一些可能的实现方式中,数据库管理系统还可以获取在历史时间段执行的至少一个第三sql语句以及至少一个第三sql语句的执行时间,并根据至少一个第三sql语句以及执行时间,构造训练样本,从而根据训练样本训练机器学习模型,获得工作负载预测模型。
10、该方法将历史时间段执行的sql语句和执行时间作为训练样本,进行工作负载预测模型的训练,从而能够提升工作负载预测模型的预测准确度,进一步提升提高缓存命中率。
11、在一些可能的实现方式中,数据库管理系统可以从持久化设备中预加载第一查询计划至缓存,该第一查询计划为至少一个第二sql语句中未缓存的sql语句的查询计划。接着,数据库管理系统可以从缓存中淘汰第二查询计划,其中,第二查询计划为在缓存且不在工作负载中的查询语句的查询计划。
12、该方法可以根据查询计划在缓存中的存储情况进行预加载或淘汰,通过淘汰在目标时间段执行可能性的查询计划,预加载在目标时间段执行可能性较高的查询计划,可以提高缓存命中率,降低查询成本,从而能够有效提升数据库查询性能。
13、在一些可能的实现方式中,缓存中包括多个哈希桶,数据库管理系统可以通过哈希算法确定第一查询计划对应的第一哈希桶,并将第一查询计划预加载至第一哈希桶。该方法采用哈希存储方式缓存查询计划,从而能够提高查找查询计划在缓存中位置的效率。
14、在一些可能的实现方式中,数据库管理系统可以遍历元数据数组的链表,该链表按照访问频率顺序链接,当链表中的元数据数组所指示的sql语句在目标时间段的工作负载中,数据库管理系统可以将元数据数组移动至链表的尾部,当链表中的元数据数组所指示的sql语句不在目标时间段的工作负载中,数据库管理系统可以淘汰sql语句对应的查询计划。
15、该方法结合lru算法进行缓存淘汰,利用元数据数组在链表中的位置表征访问频率,从而提升了缓存淘汰的效率。
16、在一些可能的实现方式中,数据库管理系统可以将第二查询计划淘汰至持久化设备。
17、该方法考虑了内存资源的限制,避免被淘汰的查询计划再次查询时重新优化,从而能够提升数据库整体查询性能。
18、在一些可能的实现方式中,数据库管理系统还可以接收用户配置的第四sql语句,并根据数据库在目标时间段的工作负载、第四sql语句,确定所述第二查询计划,该第二查询计划为在缓存且不在工作负载中的查询语句集合中除第四sql语句之外的查询语句的查询计划。
19、该方法针对复杂查询对应的sql语句,支持用户自定义sql语句,长期缓存对应的查询计划,从而减少复杂查询重复优化或者频繁换入换出的开销。
20、在一些可能的实现方式中,数据库管理系统还可以监控缓存的查询计划、缓存命中率或缓存占用内存,并通过api接口供用户进行查询,使得用户可以直观地了解数据库管理系统的运行情况,以便进行更好地缓存管理。
21、在一些可能的实现方式中本文档来自技高网...
【技术保护点】
1.一种缓存管理方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一SQL语句的语义,预测数据库在目标时间段的工作负载,包括:
3.根据权利要求2所述的方法,其特征在于,所述根据所述SQL语义向量,通过工作负载预测模型,获得所述数据库在目标时间段的工作负载,包括:
4.根据权利要求2或3所述的方法,其特征在于,所述方法还包括:
5.根据权利要求1至4任一项所述的方法,其特征在于,所述根据所述数据库在目标时间段的工作负载,对缓存中的查询计划进行管理,包括:
6.根据权利要求5所述的方法,其特征在于,所述缓存中包括多个哈希桶,所述从持久化设备中预加载第一查询计划至所述缓存,包括:
7.根据权利要求5所述的方法,其特征在于,所述从缓存中淘汰第二查询计划,包括:
8.根据权利要求5或7所述的方法,其特征在于,所述从缓存中淘汰第二查询计划,包括:
9.根据权利要求5、7或8所述的方法,其特征在于,所述方法还包括:
10.一种数据库管理系统,其特
11.根据权利要求10所述的系统,其特征在于,所述负载预测模块具体用于:
12.根据权利要求11所述的系统,其特征在于,所述负载预测模块具体用于:
13.根据权利要求11或12所述的系统,其特征在于,所述系统还包括:
14.根据权利要求10至13任一项所述的系统,其特征在于,所述缓存管理模块具体用于:
15.根据权利要求14所述的系统,其特征在于,所述缓存中包括多个哈希桶,所述缓存管理模块具体用于:
16.根据权利要求14所述的系统,其特征在于,所述缓存管理模块具体用于:
17.根据权利要求14或16所述的系统,其特征在于,所述缓存管理模块具体用于:
18.根据权利要求14、16或17所述的系统,其特征在于,所述交互模块还用于:
19.一种计算设备集群,其特征在于,所述计算设备集群包括至少一台计算设备,所述至少一台计算设备包括至少一个处理器和至少一个存储器,所述至少一个存储器中存储有计算机可读指令;所述至少一个处理器执行所述计算机可读指令,以使得所述计算设备集群执行如权利要求1至9中任一项所述的方法。
20.一种计算机可读存储介质,其特征在于,包括计算机可读指令;所述计算机可读指令用于实现权利要求1至9任一项所述的方法。
21.一种计算机程序产品,其特征在于,包括计算机可读指令;所述计算机可读指令用于实现权利要求1至9任一项所述的方法。
...【技术特征摘要】
1.一种缓存管理方法,其特征在于,所述方法包括:
2.根据权利要求1所述的方法,其特征在于,所述根据所述第一sql语句的语义,预测数据库在目标时间段的工作负载,包括:
3.根据权利要求2所述的方法,其特征在于,所述根据所述sql语义向量,通过工作负载预测模型,获得所述数据库在目标时间段的工作负载,包括:
4.根据权利要求2或3所述的方法,其特征在于,所述方法还包括:
5.根据权利要求1至4任一项所述的方法,其特征在于,所述根据所述数据库在目标时间段的工作负载,对缓存中的查询计划进行管理,包括:
6.根据权利要求5所述的方法,其特征在于,所述缓存中包括多个哈希桶,所述从持久化设备中预加载第一查询计划至所述缓存,包括:
7.根据权利要求5所述的方法,其特征在于,所述从缓存中淘汰第二查询计划,包括:
8.根据权利要求5或7所述的方法,其特征在于,所述从缓存中淘汰第二查询计划,包括:
9.根据权利要求5、7或8所述的方法,其特征在于,所述方法还包括:
10.一种数据库管理系统,其特征在于,所述系统包括:
11.根据权利要求10所述的系统,其特征在于,所述负载预测模块具体用于:
12.根据权利要求11所述的系统,其...
【专利技术属性】
技术研发人员:薛浩,纪祥虎,钟延辉,
申请(专利权)人:华为云计算技术有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。