The specification of one or more embodiments provide a method and a device to access the database, the method can include receiving a database access request; in the storage space in the storage with historical execution plan, history query corresponding to the database access request plan; when the query to the history of the implementation of the plan the history, implementation plan in response to the database access request.
【技术实现步骤摘要】
数据库访问方法及装置
本说明书一个或多个实施例涉及数据库
,尤其涉及一种数据库访问方法及装置。
技术介绍
在相关技术中,用户可以通过诸如SQL(StructuredQueryLanguage,结构化查询语言)等语言生成数据库访问请求,以发起对数据库的访问。SQL语言是一种描述型语言(非过程型语言),用户在基于SQL语言发起数据库访问请求时,需要通过SQL语言描述其对数据库的数据访问需求,比如查询哪张表、什么样的数据、对数据做哪些操作等。而对于数据库内核而言,在接收到用户发出的数据库访问请求时,需要将数据库访问请求生成为可执行的代码,这部分代码通常称为“执行计划”(或者“查询计划”,也可简称为“计划”)。执行计划从执行和优化方式上大体可分为“解释型”(interpreted)和“编译型”(compiled)两种。对于解释型的执行计划,通过将某些常用操作“函数化”,以及生成一些执行的“模板”,并对基础函数或模板的拼装、组合,即可形成解释型的执行计划。由于解释型执行计划可以通过各种模板或函数的排列组合可以组成任意复杂的执行计划,因而具有使用灵活、易于实现等优势。与解释型执行计划的生成过程不同,编译型执行计划的生成思路是将数据库访问请求直接翻译成代码,然后利用“即时编译(JIT,just-in-timecompilation)”技术将代码动态编译为可以执行的机器代码并动态加载到运行环境中,因而编译型执行计划往往执行效率更高,相比解释型执行计划可能有多达几个数量级的性能提升。然而,虽然编译型执行计划的执行效率更高,但是编译型执行计划的生成过程需要调用编译器的即 ...
【技术保护点】
一种数据库访问方法,包括:接收数据库访问请求;在相关联的存储空间存储的历史执行计划中,查询对应于所述数据库访问请求的历史执行计划;当查询到所述历史执行计划时,执行所述历史执行计划,以响应所述数据库访问请求。
【技术特征摘要】
1.一种数据库访问方法,包括:接收数据库访问请求;在相关联的存储空间存储的历史执行计划中,查询对应于所述数据库访问请求的历史执行计划;当查询到所述历史执行计划时,执行所述历史执行计划,以响应所述数据库访问请求。2.根据权利要求1所述的方法,所述相关联的存储空间包括:相关联的缓存空间。3.根据权利要求1所述的方法,所述相关联的存储空间包括以下至少之一:本地存储空间、相关联的分布式节点处的存储空间。4.根据权利要求1所述的方法,还包括:当未查询到所述历史执行计划时,生成所述数据库访问请求对应的解释型执行计划;执行所述解释型执行计划,以响应所述数据库访问请求。5.根据权利要求4所述的方法,所述历史执行计划或所述解释型执行计划被按照下述方式执行:当所述历史执行计划或所述解释型执行计划为本地计划时,在本地执行所述历史执行计划或所述解释型执行计划;当所述历史执行计划或所述解释型执行计划为分布式计划时,在本地执行所述历史执行计划或所述解释型执行计划中对应于本地节点的本地子计划;其中,所述历史执行计划或所述解释型执行计划中还包含对应于相关联的分布式节点的关联子计划,所述关联子计划由所述相关联的分布式节点执行。6.根据权利要求4所述的方法,还包括:将所述解释型执行计划存储至所述相关联的存储空间,以作为新的历史执行计划。7.根据权利要求1所述的方法,还包括:获取所述相关联的存储空间中的解释型历史执行计划;根据所述解释型历史执行计划对应的数据库访问请求,生成相应的编译型历史执行计划,以将所述解释型历史执行计划替换为编译型历史执行计划。8.根据权利要求7所述的方法,所述获取所述相关联的存储空间中的解释型历史执行计划,包括:从所述相关联的存储空间中对应于本地节点的本地存储空间,获取所述解释型历史执行计划。9.根据权利要求7所述的方法,所述获取所述相关联的存储空间中的解释型历史执行计划,包括:确定所述相关联的存储空间中的解释型历史执行计划的执行次数和/或执行频率;优先获取所述相关联的存储空间中执行次数和/或执行频率更高的解释型历史执行计划。10.根据权利要求7所述的方法,所述生成相应的编译型历史执行计划,包括:获取所述解释型历史执行计划对应的数据库访问请求包含的待编译函数;当所述相关联的存储空间中存储有所述待编译函数对应的历史编译内容时,引用所述历史编译内容,以生成所述编译型历史执行计划。11.根据权利要求10所述的方法,所述生成相应的编译型历史执行计划,包括:当所述相关联的存储空间中未存储有所述待编译函数对应的历史编译内容时,生成所述待编译函数对应的编译内容,以生成所述编译型历史执行计划。12.根据权利要求11所述的方法,还包括:将所述待编译函数对应的编译内容存储至所述相关联的存储空间,以作为新的历史编译内容。13.根据权利要求10所述的方法,还包括:确定生成所述编译型历史执行计划的过程对所述相关联的存储空间中的历史编译内容的依赖程度;从所述相关联的存储空间中删除依赖程度低于预设依赖程度的历史编译内容。14.根据权利要求13所述的方法,所述依赖程度正相关于所述历史编译内容被引用的次数。15.根据权利要求13所述的方法,所述相关联的存储空间中存储有与所述历史编译内容相关的历史执行计划,其中所述依赖程度负相关于被从所述相关联的存储空间中淘汰且与所述历史编译内容相关的历史执行计划的数量。16.根据权利要求15所述的方法,执行次数和/或执行频率更低的历史执行计划被优先从所述相关联的存储空间中淘汰。17.一种数据库访问装置,包括:接收单元,接收数据库访问请求;查询单元,在相关联的存储空间存储的历史执行...
【专利技术属性】
技术研发人员:陈萌萌,施宇迪,肖意,
申请(专利权)人:阿里巴巴集团控股有限公司,
类型:发明
国别省市:开曼群岛,KY
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。