生成并选择对应含参语句的执行计划的方法及系统的制作方法

文档序号:9471525阅读:255来源:国知局
生成并选择对应含参语句的执行计划的方法及系统的制作方法
【技术领域】
[0001] 本发明设及数据库处理领域,尤其设及一种生成并选择对应含参语句的执行计划 的方法及系统。
【背景技术】
[0002] 含有参数的S化语句称为含参语句,与数据库相连的服务器(如运行数据库管理 系统)经常需要处理含参语句。客户端一般将参数的内容和含参语句都发送给数据库管理 系统。
[0003] 处理含参语句通常有两种方式:一、不管参数值是否相同,相同的含参语句都使用 相同的执行计划。此方式的优点是依靠语句匹配直接使用已经生成的执行计划,相同的含 参语句只一次生成执行计划,因而降低了多次生成执行计划的性能消耗;缺点是抹杀了参 数的不同值对执行计划的影响,可能导致使用的执行计划性能极差。
[0004] 二、根据参数的不同值,相同的含参语句被当作不同的语句,分别生成并使用不同 的执行计划。此方式的优点是充分考虑了参数的影响,使用的执行计划都具有针对性;缺点 是多次的含参语句执行计划生成过程会大大降低数据库管理系统的性能。 阳〇化]运两种处理方式各有利弊,对参数的处理都是"一刀切",生成或选择执行计划时 要么使用参数、要么不使用参数。随着数据量的增加,两种方式都无法使数据库运行在性价 比较高的位置。因此,需要一种降低含参语句获取执行计划的开销,并提升数据库管理系统 处理含参语句性能的方案。

【发明内容】

[0006] 本发明实施例提供一种生成并选择对应含参语句的执行计划的方法及系统,用于 解决现有技术中执行计划的数量和运行限制服务器性能的问题。 阳007]本发明实施例采用W下技术方案:
[0008] 第一方面,提供一种生成对应含参语句的执行计划的方法,包括:获取待执行的含 参语句,并从中提取各参数在相应数据表中所对应的数值集合;按照每个数值集合中数值 的重复次数,设定相应数据集合中各数值所对应的选择率区间,其中,当所述选择率区间的 数量为多个时,各相邻的选择率区间之间无缝衔接;根据所述待执行的含参语句中各参数 所对应的数值所落入的选择率区间,生成相应的执行计划。
[0009] 优选地,预设有含参语句所能包含参数的最大数量,在获取含参语句,并从中提取 各参数在相应数据表中所对应的数值集合的步骤之前,所述方法包括:判断所述待执行的 含参语句中参数的数量是否大于所述最大数量;若是,则按照所述最大数量筛选所述待执 行的含参语句中的参数,并从筛选后的待执行的含参语句中提取各参数在相应数据表中所 对应的数值集合;若否,则从所取获取的待执行的含参语句中提取各参数在相应数据表中 所对应的数值集合。
[0010] 优选地,所述按照每个数值集合中数值的重复次数,设定相应数据集合中各数值 所对应的选择率区间的方式包括:将每个数值集合中各数值的重复次数作为特征值,并按 照预设的聚类算法将排序后的各所述特征值进行分类;基于各所述分类中的特征值,计算 各所述分类对应的选择率区间,并将每个分类中各特征值所对应的数值与相应的选择率区 间相对应。
[0011] 优选地,所述聚类算法包括:k-means算法。
[0012] 优选地,所述基于各所述分类中的特征值,计算各所述分类对应的选择率区间的 方式包括:基于依特征值顺序排列的前一分类中最大特征值、相邻于所述前一分类的后一 分类中最小特征值、和各特征值的总和,计算对应各分类的选择率区间的分割值,并按照各 所述分割值将[0, 1]区间进行分割,W得到至少一个所述选择率区间;其中,每个所述选择 率区间按顺序依次与所述排序后的分类相对应。
[0013] 优选地,所述根据待执行的含参语句中各参数所对应的数值所落入的选择率区 间,生成相应的执行计划的方式包括:根据所述待执行的含参语句中各参数所对应数值的 重复次数占相应数值集合中各数值总和的比例,确定包含相应比例的选择率区间;按照所 确定的各选择率区间的组合,生成相应的执行计划。
[0014] 第二方面,提供一种选择含参语句所对应的执行计划的方法,包括:获取待执行的 含参语句,并从预存的历史获取的各含参语句及所对应的选择率区间、执行计划中,选取含 参语句和选择率区间均匹配的执行计划;其中,所述选择率区间和执行计划按照如上任一 所述的生成方法所生成的。
[0015] 优选地,所述从预存的历史获取的各含参语句及所对应的选择率区间、执行计划 中,选取含参语句和选择率区间均匹配的执行计划的方式包括:匹配剔除各参数数值后的 所述待执行的含参语句与预存的历史获取的各含参语句;若匹配不成功,则按照如上任一 所述的生成方法生成对应所述待执行含参语句的执行计划;若匹配成功,则根据待执行的 含参语句中各参数所对应数值的重复次数占相应数值集合中各数值总和的比例,确定包含 相应比例的选择率区间;查询已生成的各执行计划中是否包含所确定的选择率区间所对应 的执行计划;若是,则选取相应的执行计划;若否,则根据所述待执行的含参语句中各参数 所对应的数值所落入的选择率区间,生成相应的执行计划。
[0016] 第=方面,提供一种生成含参语句所对应的执行计划的系统,包括:数据库访问模 块,用于获取待执行的含参语句,并从中提取各参数在相应数据表中所对应的数值集合;选 择率区间确定模块,用于按照每个数值集合中数值的重复次数,设定相应数据集合中各数 值所对应的选择率区间;其中,当所述选择率区间的数量为多个时,各相邻的选择率区间之 间无缝衔接;生成模块,用于根据所述待执行的含参语句中各参数所对应的数值所落入的 选择率区间,生成相应的执行计划。
[0017] 第四方面,还提供一种选择含参语句所对应的执行计划的系统,包括:选取模块, 用于获取待执行的含参语句,从预存的历史获取的各含参语句及所对应的选择率区间、执 行计划中,选取含参语句和选择率区间均匹配的执行计划;其中,所述选择率区间和执行计 划按照如上所述的生成系统所生成的;执行模块,用于按照所述待执行的含参语句中各参 数的数值执行所选取的执行计划。
[0018] 如上所述,本发明的生成并选择对应含参语句的执行计划的方法及系统,具有W 下有益效果:将含参语句中各参数所对应的每个数值集合划分成多个选择率区间,再按照 选择率区间生成执行计划,能够有效减少多参数的执行计划的数量;同时,按照含参语句中 各参数的数值执行不同的执行计划,有效解决了执行计划准确性低的问题;另外,限定执行 计划数量,能够有效防止参数过多所导致的执行计划数量庞大,从而有效防止硬件容量被 执行计划所占用;此外,在选择执行计划时,将含参语句中参数所对应的数值与相应的数值 集合进行概率运算,选择涵盖所述数值所对应的概率的选择率区间,由此来确定执行计划, 能够有效提高执行计划的选择准确性。
【附图说明】
[0019] 为了更清楚地说明本发明实施例中的技术方案,下面将对本发明实施例描述中所 需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施 例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可W根据本发明实施 例的内容和运些附图获得其他的附图。
[0020] 图1是本发明的选择对应含参语句的执行计划的方法的一个实施例的方法流程 图。
[0021] 图2是本发明的生成并选择对应含参语句的执行计划的方法的一个实施例的方 法流程图。
[0022] 图3是本发明的生成对应含参语句的执行计划的方法中的又一个实施例的方法 流程图。
[0023] 图4是本发明的选择对应含参语句的执行计划的系统的一个实施例的结构方框 图。
[0024] 图5是本发明的生成并选择对应含参语句的执行计划的系统的一个实施例的结 构方框图。
[0025] 图6是本发明的生成对应含参语句的执行计划的系统的又一个实施例的结构方 框图。
【具体实施方式】
[0026] 为使本发明解决的技术问题、采用的技术方案和达到的技术效果更加清楚,下面 将结合附图对本发明实施例的技术方案作进一步的详细描述,显然,所描述的实施例仅仅 是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域技术人员在 没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[00
当前第1页1 2 3 4 5 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1