数据库访问方法和装置制造方法及图纸

技术编号:15690925 阅读:99 留言:0更新日期:2017-06-24 03:42
本申请提供一种数据库访问方法和装置。所述方法包括:为与数据库访问请求相关的谓词确定当前执行顺序;在基于所述当前执行顺序执行所述谓词的过程中,根据预设的采样周期采集各谓词的执行结果参数;根据所述执行结果参数判断所述谓词是否满足顺序更新条件;当所述谓词满足顺序更新条件时,基于采集得到的执行结果参数更新所述谓词的当前执行顺序,并在基于所述当前执行顺序执行所述谓词的过程中,继续执行根据预设的采样周期采集各谓词的执行结果参数的过程。本申请可以根据真实的执行总代价动态调整谓词的执行顺序,自适应数据分布的变化,使得谓词在整个执行的过程中,始终保持执行总代价最低,提高数据访问的效率,节省系统的处理资源。

Database access method and device

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是本申请一示例性实施例示出的一种根据执行结果参数判断各谓词是否满足顺序更新条件的流程图。图3是本申请一示例性实施例示出的另一种数据库访问方法的流程图。图4是本申请一示例性实施例示出的一种用于数据库访问装置的一结构框图。图5是本申请一示例性实施例示出的一种数据库访问装置的框图。图6是本申请一示例性实施例示出的另一种数据库访问装置的框图。具体实施方式这里将详细地对示例性实施例进行说明,其示例表示在附图中。下面的描述涉及附图时,除非另有表示,不同附图中的相同数字表示相同或相似的要素。以下示例性实施例中所描述的实施方式并不代表与本申请相一致的所有实施方式。相反,它们仅是与如所附权利要求书中所详述的、本申请的一些方面相一致的装置和方法的例子。在本申请使用的术语是仅仅出于描述特定实施例的目的,而非旨在限制本申请。在本申请和所附权利要求书中所使用的单数形式的“一种”、“所述”和“该”也旨在包括多数形式,除非上下文清楚地表示其他含义。还应当理解,本文中使用的术语“和/或”是指并包含一个或多个相关联的列出项目的任何或所有可能组合。应当理解,尽管在本申请可能采用术语第一、第二、第三等来描述各种信息,但这些信息不应限于这些术语。这些术语仅用来将同一类型的信息彼此区分开。例如,在不脱离本申请范围的情况下,第一信息也可以被称为第二信息,类似地,第二信息也可以被称为第一信息。取决于语境,如在此所使用的词语“如果”可以被解释成为“在……时”或“当……时”或“响应于确定”。图1是本申请一示例性实施例示出的一种数据库访问方法的流程图。请参考图1,所述数据库访问方法可以应用在运行有数据库服务端程序的服务器中,包括有以下步骤:步骤101,为与数据库访问请求相关的谓词确定当前执行顺序。在本实施例中,一个数据库访问请求通常对应有多个SQL谓词(在本申请后续的描述中,简称谓词)。在本步骤中,在接收到数据库访问请求后,可以先确定所述数据库访问请求对应的多个谓词,然后可以根据各谓词缺省的执行结果确定当前执行顺序,也就是确定各谓词的初始执行顺序。其中,所述执行结果通常包括两个参考维度:选择率和代价。其中,所述选择率为执行对应谓词后返回执行结果参数是真的比率,可以理解的是,某个谓词的选择率越低说明该谓词的过滤性越强。所述代价通常为对应谓词的执行耗时等。在本实施例中,在确定各谓词的初始执行顺序时,可以依据合取范式以及析取范式确定所述初始执行顺序。举例来说,假设所述数据库访问请求对应有n个谓词,分别为P1,P2,…,Pn,这N个谓词的选择率分别为F1,F2,…,Fn,代价分别为C1,C2,…,Cn。则可以将合取范式P1andP2and…andPn的执行总代价的计算公式设置为:N×(C1+F1×C2+F1×F2×C3+…+F1×F2×…×Fn-1×Cn)将析取范式的执行总代价的计算公式设置为:N×(C1+(1-F1)×C2+(1-F1)×(1-F2)×C3+…+(1-F1)×(1-F2)×…×(1-Fn-1)×Cn)上述公式中,各谓词的缺省代价C通常为预设的代价,各谓词的缺省选择率F通常是基于系统针对不同谓词的全局统计值(NDV或直方图)得到。在本步骤中,可以遍历各谓词的所有可能执行顺序,然后根据上述公式,确定一个执行总代价最小的执行顺序,作为初始执行顺序。步骤102,在基于所述当前执行顺序执行所述谓词的过程中,根据预设的采样周期采集各谓词的执行结果参数。在本实施例中,在确定各谓词的当前执行顺序后,可以基于所述当前执行顺序依次执行所述谓词本文档来自技高网...
数据库访问方法和装置

【技术保护点】
一种数据库访问方法,其特征在于,所述方法包括:为与数据库访问请求相关的谓词确定当前执行顺序;在基于所述当前执行顺序执行所述谓词的过程中,根据预设的采样周期采集各谓词的执行结果参数;根据所述执行结果参数判断所述谓词是否满足顺序更新条件;当所述谓词满足顺序更新条件时,基于采集得到的执行结果参数更新所述谓词的当前执行顺序,并在基于所述当前执行顺序执行所述谓词的过程中,继续执行根据预设的采样周期采集各谓词的执行结果参数的过程。

【技术特征摘要】
1.一种数据库访问方法,其特征在于,所述方法包括:为与数据库访问请求相关的谓词确定当前执行顺序;在基于所述当前执行顺序执行所述谓词的过程中,根据预设的采样周期采集各谓词的执行结果参数;根据所述执行结果参数判断所述谓词是否满足顺序更新条件;当所述谓词满足顺序更新条件时,基于采集得到的执行结果参数更新所述谓词的当前执行顺序,并在基于所述当前执行顺序执行所述谓词的过程中,继续执行根据预设的采样周期采集各谓词的执行结果参数的过程。2.根据权利要求1所述的方法,其特征在于,所述根据所述执行结果参数判断所述谓词是否满足顺序更新条件,包括:根据采集到的所述执行结果参数计算对应采样周期各谓词的执行结果样本;针对每个谓词,计算连续N个采样周期的执行结果样本的均值作为参考执行结果,N为大于1的自然数;当所述参考执行结果与缓存的执行结果的变化超过预设的阈值时,确定所述谓词满足顺序更新条件;其中,所述缓存的执行结果为确定所述谓词当前执行顺序的执行结果;所述方法还包括:在基于采集得到的执行结果参数更新所述谓词的当前执行顺序后,用所述采集得到的执行结果参数确定执行结果后更新已缓存的执行结果。3.根据权利要求2所述的方法,其特征在于,所述执行结果参数包括两个维度:执行代价和取值真假;所述执行结果样本和所述参考执行结果均包括两个参考维度:代价和选择率,其中,所述选择率由所述取值真假确定;所述当所述参考执行结果与缓存的执行结果的变化超过预设的阈值时,确定所述谓词满足顺序更新条件,包括:当所述参考执行结果与缓存的执行结果在一个或者多个参考维度的变化超过预设的阈值时,确定所述谓词满足顺序更新条件。4.根据权利要求3所述的方法,其特征在于,所述根据采集到的所述执行结果参数计算对应采样周期各谓词的执行结果样本,包括:当所述执行结果参数为取值真假时,根据采集到的取值真假生成真值表,所述真值表中记录有各谓词在各采样行执行后的取值;根据所述真值表计算对应采样周期各谓词的选择率;当所述执行结果参数为执行代价时,计算各谓词在各采样行的执行代价均值,作为对应采样周期各谓词的代价。5.根据权利要求2所述的方法,其特征在于,所述为与数据库访问请求相关的谓词确定当前执行顺序,包括:在接收到数据库访问请求后,根据各谓词缺省的执行结果确定当前执行顺序;缓存所述缺省的执行结果。6.根据权利要求1所述的方法,其特征在于,所述根据预设的采样周期采集各谓词的执行结果参数,包括:在到达预设的采样周期时,针对所有访问行,根据预设的采样比例确定是否对各谓词在所述访问行的执行结果参数进行采集。7.一种数据库访问方法,其特征在于,所述方法包括:为与数据库访问请求相关的谓词确定当前执行顺序;在基于所述当前执行顺序执行所述谓词的过程中,根据预设的更新周期采集各谓词的执行结果参数;基于采集到的所述执行结果参数更新所述谓词的当前执行顺序,并在基于所述当前执行顺序执行所述谓词的过程中,继续执...

【专利技术属性】
技术研发人员:陈萌萌
申请(专利权)人:阿里巴巴集团控股有限公司
类型:发明
国别省市:开曼群岛,KY

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

1