The present application provides a database access method and apparatus. The method includes: with database access request the relevant predicates to determine the current execution order; the order of execution in the current process of executing the predicate based on the sampling period, according to the results of the implementation of the acquisition of predicate inputs; according to the execution results of the parameters to judge whether a predicate satisfies the sequential update when conditions; the predicate update satisfies the sequential condition, based on the obtained results of the implementation of the parameter updating the current predicate execution order, and in the process of the execution order of the execution of the predicate based on the process, continue to implement according to the sampling period of each predicate acquisition results of the implementation of the preset parameters. This application can be executed according to the total cost of the dynamic adjustment of execution order predicate true, adaptive data distribution, the predicate in the whole process of the implementation of the implementation of the minimum cost, maintain and improve the efficiency of data access, save resource processing system.
【技术实现步骤摘要】
数据库访问方法和装置
本申请涉及数据库
,尤其涉及一种数据库访问方法和装置。
技术介绍
SQL(StructuredQueryLanguage,结构化查询语言)谓词通常是指where分句中的条件表达式,SQL谓词通过返回真或假的值判定一行数据是否需要返回给用户。在处理一个数据库访问请求时,通常需要执行多个谓词。相关技术中,各数据库通常会预定义有谓词的分类,并依据预设的分类顺序依次执行各类谓词。比如:在IBM数据库中,可以将谓词分为stage1和stage2两类,在执行时,首先执行stage1谓词,然后再执行stage2谓词。而针对某一类中的多个谓词,可以按照用户定义的顺序(where条件中出现的先后顺序)先后执行。然而,在这样的实现方案中,谓词的执行顺序依赖数据库预定义的规则,对执行算子本身的代价(比如:执行耗时等)并不敏感,在一些情况下无法达到代价最低的执行顺序。另一方面,谓词的执行顺序还会依赖用户的输入顺序,当用户想要修改谓词的执行顺序时,需要修改访问请求本身,技术门槛高。此外,谓词的执行顺序一旦确定,在执行的过程中无法改变,当数据库中存储的数据分布发生变化或数据倾斜时,不能确保谓词的执行代价始终较低。
技术实现思路
有鉴于此,本申请提供一种数据库访问方法和装置。具体地,本申请是通过如下技术方案实现的:一种数据库访问方法,所述方法包括:为与数据库访问请求相关的谓词确定当前执行顺序;在基于所述当前执行顺序执行所述谓词的过程中,根据预设的采样周期采集各谓词的执行结果参数;根据所述执行结果参数判断所述谓词是否满足顺序更新条件;当所述谓词满足顺序更新条件时, ...
【技术保护点】
一种数据库访问方法,其特征在于,所述方法包括:为与数据库访问请求相关的谓词确定当前执行顺序;在基于所述当前执行顺序执行所述谓词的过程中,根据预设的采样周期采集各谓词的执行结果参数;根据所述执行结果参数判断所述谓词是否满足顺序更新条件;当所述谓词满足顺序更新条件时,基于采集得到的执行结果参数更新所述谓词的当前执行顺序,并在基于所述当前执行顺序执行所述谓词的过程中,继续执行根据预设的采样周期采集各谓词的执行结果参数的过程。
【技术特征摘要】
1.一种数据库访问方法,其特征在于,所述方法包括:为与数据库访问请求相关的谓词确定当前执行顺序;在基于所述当前执行顺序执行所述谓词的过程中,根据预设的采样周期采集各谓词的执行结果参数;根据所述执行结果参数判断所述谓词是否满足顺序更新条件;当所述谓词满足顺序更新条件时,基于采集得到的执行结果参数更新所述谓词的当前执行顺序,并在基于所述当前执行顺序执行所述谓词的过程中,继续执行根据预设的采样周期采集各谓词的执行结果参数的过程。2.根据权利要求1所述的方法,其特征在于,所述根据所述执行结果参数判断所述谓词是否满足顺序更新条件,包括:根据采集到的所述执行结果参数计算对应采样周期各谓词的执行结果样本;针对每个谓词,计算连续N个采样周期的执行结果样本的均值作为参考执行结果,N为大于1的自然数;当所述参考执行结果与缓存的执行结果的变化超过预设的阈值时,确定所述谓词满足顺序更新条件;其中,所述缓存的执行结果为确定所述谓词当前执行顺序的执行结果;所述方法还包括:在基于采集得到的执行结果参数更新所述谓词的当前执行顺序后,用所述采集得到的执行结果参数确定执行结果后更新已缓存的执行结果。3.根据权利要求2所述的方法,其特征在于,所述执行结果参数包括两个维度:执行代价和取值真假;所述执行结果样本和所述参考执行结果均包括两个参考维度:代价和选择率,其中,所述选择率由所述取值真假确定;所述当所述参考执行结果与缓存的执行结果的变化超过预设的阈值时,确定所述谓词满足顺序更新条件,包括:当所述参考执行结果与缓存的执行结果在一个或者多个参考维度的变化超过预设的阈值时,确定所述谓词满足顺序更新条件。4.根据权利要求3所述的方法,其特征在于,所述根据采集到的所述执行结果参数计算对应采样周期各谓词的执行结果样本,包括:当所述执行结果参数为取值真假时,根据采集到的取值真假生成真值表,所述真值表中记录有各谓词在各采样行执行后的取值;根据所述真值表计算对应采样周期各谓词的选择率;当所述执行结果参数为执行代价时,计算各谓词在各采样行的执行代价均值,作为对应采样周期各谓词的代价。5.根据权利要求2所述的方法,其特征在于,所述为与数据库访问请求相关的谓词确定当前执行顺序,包括:在接收到数据库访问请求后,根据各谓词缺省的执行结果确定当前执行顺序;缓存所述缺省的执行结果。6.根据权利要求1所述的方法,其特征在于,所述根据预设的采样周期采集各谓词的执行结果参数,包括:在到达预设的采样周期时,针对所有访问行,根据预设的采样比例确定是否对各谓词在所述访问行的执行结果参数进行采集。7.一种数据库访问方法,其特征在于,所述方法包括:为与数据库访问请求相关的谓词确定当前执行顺序;在基于所述当前执行顺序执行所述谓词的过程中,根据预设的更新周期采集各谓词的执行结果参数;基于采集到的所述执行结果参数更新所述谓词的当前执行顺序,并在基于所述当前执行顺序执行所述谓词的过程中,继续执...
【专利技术属性】
技术研发人员:陈萌萌,
申请(专利权)人:阿里巴巴集团控股有限公司,
类型:发明
国别省市:开曼群岛,KY
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。