执行计划的存储方法、装置及系统制造方法及图纸

技术编号:9668052 阅读:87 留言:0更新日期:2014-02-14 06:37
本发明专利技术实施例公开了一种执行计划的存储方法、装置及系统,涉及数据库领域,可以提高执行计划的缓存命中率,减少系统开销。所述方法包括:客户端将SQL请求及生成的位置信息发送给数据库服务器,数据库服务器根据接收到的SQL请求及位置信息,生成并执行SQL请求对应的执行计划,并且将该执行计划保存至位置信息指示的缓存中。本发明专利技术实施例适用于在客户端或数据库服务器的缓存中保存SQL请求对应的执行计划。

【技术实现步骤摘要】
执行计划的存储方法、装置及系统
本专利技术涉及数据库领域,特别涉及一种执行计划的存储方法、装置及系统。
技术介绍
数据库中的执行计划是指对SQL(Structured query language,结构化查询语言) 请求的执行过程的描述。数据库服务器每次执行客户端发起的SQL请求时,都需要对SQL 请求进行解析并生成对应的执行计划,并将执行计划保存在数据库服务器的内存中。目前 数据库服务器在进行执行计划的保存时,会针对不同的客户端分别配置缓存区,以保存不 同的客户端对应的执行计划。然而通过目前这种执行计划的存储方式进行执行计划保存时,数据库服务器为不 同的客户端分别配置缓存区。由于当客户端所分配的缓存区饱和后,利用率低的执行计划 所占用的缓存会被释放,以使得该客户端利用率高的执行计划缓存在所分配的缓存区中, 即上述利用率低的执行计划无法被保存在缓存中,当客户端再次发起该SQL请求时,数据 库服务器需要重新解析该SQL请求并生成对应的执行计划,从而造成执行计划的缓存命中 率较低,增加了系统开销。
技术实现思路
本专利技术实施例提供一种执行计划的存储方法、装置及系统,可以提高执行计划的 缓存命中率,减少系统开销。第一方面,本专利技术实施例提供一种执行计划的存储方法,包 括:客户端接收结构化查询语言SQL请求;所述客户端检测在所述客户端的缓存中是否存在所述SQL请求对应的执行计划;若所述客户端的缓存中不存在所述SQL请求对应的执行计划,所述客户端生成位 置信息,所述位置信息用于指示与所述SQL请求对应的执行计划的缓存位置,所述缓存位 置为所述客户端的缓存和/或数据库服务器的缓存;所述客户端将所述位置信息及所述SQL请求发送给所述数据库服务器,以使得所 述数据库服务器生成所述SQL请求对应的执行计划,并将所述执行计划保存到所述位置信 息指示的缓存中。在第一方面的第一种实现方式中,还包括:若所述客户端的缓存中存在所述SQL请求对应的执行计划,所述客户端将所述执 行计划发送给所述数据库服务器,以使得所述数据库服务器执行所述执行计划。结合第一方面或者第一方面的第一种实现方式,在第一方面的第二种实现方式 中,所述若所述客户端的缓存中存在所述SQL请求对应的执行计划,所述客户端将所述执 行计划发送给所述数据库服务器,以使得所述数据库服务器执行所述执行计划,具体包 括:若所述客户端的缓存中存在所述SQL请求对应的多个执行计划,则所述客户端从所述多个执行计划中选择任意一个执行计划发送给所述数据库服务器。结合第一方面或者第一方面的第一种实现方式,或者第一方面的第二种实现方 式,在第一方面的第三种实现方式中,在所述客户端将所述执行计划发送给所述数据库服 务器之前,所述方法还包括:所述客户端通过图形化界面显示所述执行计划的参数信息;所述客户端根据参数信息修改指令调整所述执行计划的参数信息,并将调整后的 执行计划保存在所述客户端的缓存中;所述客户端将所述执行计划发送给所述数据库服务器的步骤包括:所述客户端将所述调整后的执行计划发送给所述数据库服务器。结合第一方面或者第一方面的第一种实现方式,或者第一方面的第二种实现方 式,或者第一方面的第三种实现方式,在第一方面的第四种实现方式中,在所述客户端将所 述位置信息及所述SQL请求发送给所述数据库服务器之后,所述方法还包括:若所述位置信息指定所述执行计划的缓存位置为所述客户端的缓存,所述客户端 接收所述数据库服务器发送的所述SQL请求对应的执行计划,并保存在所述客户端的缓存 中。结合第一方面或者第一方面的第一种实现方式,或者第一方面的第二种实现方 式,或者第一方面的第三种实现方式,或者第一方面的第四种实现方式,在第一方面的第五 种实现方式中,所述若所述客户端的缓存中不存在所述SQL请求对应的执行计划,所述客 户端生成位置信息,具体包括:若所述客户端的缓存中不存在所述SQL请求对应的执行计划,所述客户端根据所 述SQL请求,进行哈希运算生成所述位置信息。第二方面,本专利技术实施例提供一种执行计划 的存储装置,包括:接收单元,用于接收结构化查询语言SQL请求;检测单元,用于检测在所述客户端的缓存中是否存在所述接收单元接收的所述 SQL请求对应的执行计划;生成单元,用于当所述客户端的缓存中不存在所述检测单元检测的所述SQL请求 对应的执行计划时,生成位置信息,所述位置信息用于指示与所述SQL请求对应的执行计 划的缓存位置,所述缓存位置为所述客户端的缓存和/或数据库服务器的缓存;发送单元,用于将所述位置信息及所述SQL请求发送给所述数据库服务器。在第二方面的第一种实现方式中,所述发送单元,还用于当所述客户端的缓存中 存在所述SQL请求对应的执行计划时,将所述执行计划发送给所述数据库服务器,以使得 所述数据库服务器执行所述执行计划。结合第二方面或者第二方面的第一种实现方式,在第二方面的第二种实现方式 中,所述发送单元,还用于当所述客户端的缓存中存在所述SQL请求对应的多个执行计划 时,则从所述多个执行计划中选择任意一个执行计划发送给所述数据库服务器。结合第二方面或者第二方面的第一种实现方式,或者第二方面的第二种实现方 式,在第二方面的第三种实现方式中,还包括:显示单元,用于通过图形化界面显示所述检测单元检测到的所述执行计划的参数信息;调整单元,用于根据参数信息修改指令调整所述显示单元显示的所述执行计划的 参数信息;保存单元,用于将调整后的执行计划保存在所述客户端的缓存中;所述发送单元,还用于将所述调整单元调整后的执行计划发送给所述数据库服务 器。结合第二方面或者第二方面的第一种实现方式,或者第二方面的第二种实现方 式,或者第二方面的第三种实现方式,在第二方面的第四种实现方式中,所述接收单元,还用于当所述位置信息指定所述执行计划的缓存位置为所述客户 端的缓存时,接收所述数据库服务器发送的所述SQL请求对应的执行计划;所述保存单元,还用于将所述接收单元接收的所述执行计划保存在所述客户端的 缓存中。结合第二方面或者第二方面的第一种实现方式,或者第二方面的第二种实现方 式,或者第二方面的第三种实现方式,或者第二方面的第四种实现方式,在第二方面的第五 种实现方式中,所述生成单元,还用于当所述客户端的缓存中不存在所述SQL请求对应的执行计 划时,根据所述SQL请求,进行哈希运算生成所述位置信息。第三方面,本专利技术实施例提供一种执行计划的存储方法,包括:数据库服务器接收客户端发送的位置信息及结构化查询语言SQL请求,所述位置 信息用于指示与所述SQL请求对应的执行计划的缓存位置,所述缓存位置为客户端的缓存 和/或数据库服务器的缓存;所述数据库服务器获取所述SQL请求对应的执行计划;[0041 ] 所述数据库服务器根据所述位置信息获取所述执行计划的缓存位置;若所述位置信息指定所述执行计划的缓存位置为所述客户端的缓存,所述数据库 服务器将所述执行计划发送给所述客户端进行保存。在第三方面的第一种实现方式中,在所述数据库服务器接收客户端发送的位置信 息及结构化查询语言SQL请求之前,所述方法还包括:若所述客户端的缓存中存在所述SQL请求对应的执行计划,所述数据库服务器接 收所述客户端发送的所述执行计划,并且执行所述本文档来自技高网...
执行计划的存储方法、装置及系统

【技术保护点】
一种执行计划的存储方法,其特征在于,包括:客户端接收结构化查询语言SQL请求;所述客户端检测在所述客户端的缓存中是否存在所述SQL请求对应的执行计划;若所述客户端的缓存中不存在所述SQL请求对应的执行计划,所述客户端生成位置信息,所述位置信息用于指示与所述SQL请求对应的执行计划的缓存位置,所述缓存位置为所述客户端的缓存和/或数据库服务器的缓存;所述客户端将所述位置信息及所述SQL请求发送给所述数据库服务器,以使得所述数据库服务器生成所述SQL请求对应的执行计划,并将所述执行计划保存到所述位置信息指示的缓存中。

【技术特征摘要】
1.一种执行计划的存储方法,其特征在于,包括:客户端接收结构化查询语言SQL请求;所述客户端检测在所述客户端的缓存中是否存在所述SQL请求对应的执行计划; 若所述客户端的缓存中不存在所述SQL请求对应的执行计划,所述客户端生成位置信息,所述位置信息用于指示与所述SQL请求对应的执行计划的缓存位置,所述缓存位置为所述客户端的缓存和/或数据库服务器的缓存;所述客户端将所述位置信息及所述SQL请求发送给所述数据库服务器,以使得所述数据库服务器生成所述SQL请求对应的执行计划,并将所述执行计划保存到所述位置信息指示的缓存中。2.根据权利要求1所述的执行计划的存储方法,其特征在于,还包括:若所述客户端的缓存中存在所述SQL请求对应的执行计划,所述客户端将所述执行计划发送给所述数据库服务器,以使得所述数据库服务器执行所述执行计划。3.根据权利要求2所述的执行计划的存储方法,其特征在于,所述若所述客户端的缓存中存在所述SQL请求对应的执行计划,所述客户端将所述执行计划发送给所述数据库服务器,以使得所述数据库服务器执行所述执行计划,具体包括:若所述客户端的缓存中存在所述SQL请求对应的多个执行计划,则所述客户端从所述多个执行计划中选择任意一个执行计划发送给所述数据库服务器。4.根据权利要求2所述的执行计划的存储方法,其特征在于,在所述客户端将所述执行计划发送给所述数据库服务器之前,所述方法还包括:所述客户端通过图形化界面显示 所述执行计划的参数信息;所述客户端根据参数信息修改指令调整所述执行计划的参数信息,并将调整后的执行计划保存在所述客户端的缓存中;所述客户端将所述执行计划发送给所述数据库服务器的步骤包括:所述客户端将所述调整后的执行计划发送给所述数据库服务器。5.根据权利要求1所述的执行计划的存储方法,其特征在于,在所述客户端将所述位置信息及所述SQL请求发送给所述数据库服务器之后,所述方法还包括:若所述位置信息指定所述执行计划的缓存位置为所述客户端的缓存,所述客户端接收所述数据库服务器发送的所述SQL请求对应的执行计划,并保存在所述客户端的缓存中。6.根据权利要求1所述的执行计划的存储方法,其特征在于,所述若所述客户端的缓存中不存在所述SQL请求对应的执行计划,所述客户端生成位置信息,具体包括:若所述客户端的缓存中不存在所述SQL请求对应的执行计划,所述客户端根据所述 SQL请求,进行哈希运算生成所述位置信息。7.一种执行计划的存储方法,其特征在于,包括:数据库服务器接收客户端发送的位置信息及结构化查询语言SQL请求,所述位置信息用于指示与所述SQL请求对应的执行计划的缓存位置,所述缓存位置为客户端的缓存和/ 或所述数据库服务器的缓存;所述数据库服务器获取所述SQL请求对应的执行计划;所述数据库服务器根据所述位置信息获取所述执行计划的缓存位置;若所述位置信息指定所述执行计划的缓存位置为所述客户端的缓存,所述数据库服务器将所述执行计划发送给所述客户端进行保存。8.根据权利要求7所述的执行计划的存储方法,其特征在于,在所述数据库服务器接收客户端发送的位置信息及结构化查询语言SQL请求之前,所述方法还包括:若所述客户端的缓存中存在所述SQL请求对应的执行计划,所述数据库服务器接收所述客户端发送的所述执行计划,并且执行所述执行计划。9.根据权利要求8所述的执行计划的存储方法,其特征在于,所述若所述客户端的缓存中存在所述SQL请求对应的执行计划,所述数据库服务器接收所述客户端发送的所述执行计划,并且执行所述执行计划,具体包括:若所述客户端的缓存中存在所述SQL请求对应的多个执行计划,所述数据库服务器接收所述客户端发送的从所述多个执行计划中选择的任意一个执行计划,并且执行所述执行计划。10.根据权利要求8所述的执行计划的存储方法,其特征在于,所述若所述客户端的缓存中存在所述SQL请求对应的执行计划,所述数据库服务器接收所述客户端发送的所述执行计划,并且执行所述执行计划,具体包括:若所述客户端的缓存中存在所述SQL请求对应的执行计划,并且所述客户端通过图形化界面对所述执行计划进行参数调整,所述数据库服务器接收所述客户端发送的调整后的执行计划,并且执行所述执行计划。11.根据权利要求7所述的执行计划的存储方法,其特征在于,在所述数据库服务器根据所述位置信息获取所述执行计划的缓存位置之后,所述方法还包括:若所述位置信息指定所述执行计划的缓存位置为所述数据库服务器的缓存,所述数据库服务器将所述执行计划保存在所述数据库服务器的缓存中。12.—种执行计划的存储装置,其特征在于,包括:接收单元,用于接收结构化·查询语言SQL请求;检测单元,...

【专利技术属性】
技术研发人员:于巍文继军刘辉军
申请(专利权)人:华为技术有限公司
类型:发明
国别省市:

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

1