The embodiment of the present invention provides a method for generating an execution plan comprising a first execution plan and a second execution plan, comprising: a data manipulation language DML statement parsed to determine a first data table comprising first data stored on a solid-state hard disk SSD medium, And the second data stored on a mechanical hard disk HDD medium; for the first data generation, the first sub-execution plan includes reading the first data through a table scan; and generating the second sub-execution plan for the second data. This results in an execution plan that is more consistent with the characteristics of data storage, and the execution plan can save more resources.
【技术实现步骤摘要】
一种执行计划的生成方法、装置及数据库服务器
本专利技术涉及计算机领域,尤其涉及一种执行计划的生成方法、装置及数据库服务器。
技术介绍
数据库技术的发展提供了越来越大的数据存储能力,用户可以通过网络等方式对海量数据存储进行查询并获得所需的数据。数据库技术中包括数据操纵语言DML,例如来自客户端的查询语句(select)、插入语句(insert)、删除语句(delete)、更新语句(update)等。在执行DML语句的过程中,需要对该DML语句进行语法分析、预编译、优化等步骤,继而生成执行计划。为了提高查询性能,数据库常常会使用索引管理数据。索引是一种与表有关的数据库结构,是表的分执行计划,它可以使执行对象为数据表的SQL语句执行得更快。例如,一种常见的索引采用B树或B+树的数据结构。通常,索引包括排序后的键值(key),以及指向表数据的存储位置的记录标识符RID(RecordIdentifier),在根据查询条件筛选出满足条件的键值后,如果需要取该键值对应的表中其它元组数据,则需要依靠该这些键值对应的索引中的RID,以获得元组数据在磁盘上数据位置。索引的聚簇因子(clusteringfactor/CF)是反映索引键值的顺序与RID顺序不一致程度的统计信息之一,一般是基于索引列上的一个值。因此,聚簇因子通常用被数据库管理系统(DatabaseManagementSystem)的优化器用于在生成执行计划的过程中计算开销(cost),开销直接影响执行计划中使用的算子等。例如,在聚簇因子较小时,如果键值的顺序依照RID访问表空间数据,会产生大量随机I/O,从而影响查 ...
【技术保护点】
1.一种执行计划的生成方法,其特征在于,所述执行计划包括第一分执行计划和第二分执行计划,所述方法包括:解析得到的数据操纵语言DML语句,以确定所述DML语句对应的第一数据表,所述第一数据表包括存储在固态硬盘SSD介质上的第一数据,以及存储在机械硬盘HDD介质上的第二数据;对所述第一数据,生成所述第一分执行计划,所述第一分执行计划包括通过表扫描读取所述第一数据;对所述第二数据,生成所述第二分执行计划,所述第二分执行计划包括在所述第二数据需要预排序的情况下,对所述第二数据预排序后,读取经过预排序的所述第二数据;在所述第二数据无需预排序的情况下,通过表扫描读取所述第二数据。
【技术特征摘要】
1.一种执行计划的生成方法,其特征在于,所述执行计划包括第一分执行计划和第二分执行计划,所述方法包括:解析得到的数据操纵语言DML语句,以确定所述DML语句对应的第一数据表,所述第一数据表包括存储在固态硬盘SSD介质上的第一数据,以及存储在机械硬盘HDD介质上的第二数据;对所述第一数据,生成所述第一分执行计划,所述第一分执行计划包括通过表扫描读取所述第一数据;对所述第二数据,生成所述第二分执行计划,所述第二分执行计划包括在所述第二数据需要预排序的情况下,对所述第二数据预排序后,读取经过预排序的所述第二数据;在所述第二数据无需预排序的情况下,通过表扫描读取所述第二数据。2.根据权利要求1所述的生成方法,其特征在于,所述对所述第一数据,生成第一分执行计划,包括:根据所述第一数据的虚聚簇因子的值,生成所述第一分执行计划,所述第一数据的虚聚簇因子表示通过索引读取所述存储于SSD存储介质中的第一数据的代价。3.根据权利要求2所述的方法,所述方法还包括:根据所述第一数据所在的存储介质的随机I/O,确定所述第一数据的虚聚簇因子。4.根据权利要求1到3任一所述的生成方法,其特征在于,所述方法还包括:根据所述第一数据表的逻辑聚簇因子的值,确定所述执行计划中第一算子,所述第一算子对应于所述第一数据表与第二数据表之间的第一运算,所述第一数据表的逻辑聚簇因子用于替代所述第一数据表的聚簇因子,用于表示以所述第一数据表为整体,通过索引读取所述第一数据表的代价。5.根据权利要求4所述的生成方法,其特征在于,所述方法还包括:根据所述第一数据的虚聚簇因子和所述第二数据的聚簇因子,计算所述第一数据表的逻辑聚簇因子,所述第一数据的虚聚簇因子用于表示通过索引读取所述存储于SSD存储介质中的第一数据的代价,所述第二数据的聚簇因子用于表示通过索引读取所述存储于HHD存储介质中的第二数据的代价。6.根据权利要求4所述的生成方法,其特征在于,所述第一运算为连接(join),所述第一数据表为所述运算中的外表(outer),所述算子为混合连接(HybridJoin)、嵌套循环连接(NestedLoopsJoin)、哈希连接(HashJoin)以及排序合并连接中的一种。7.根据权利要求1所述的生成方法,其特征在于,所述方法还包括:根据第一标识,确定所述第一数据表中的第一数据和第二数据,所述第一标识用于指示存储数据表中数据的存储介质的类型。8.根据权利要求1所述的生成方法,其特征在于,所述对所述第一数据,生成第一分执行计划,包括:根据第二标识,生成所述第一分执行计划,所述第二标识用于标记数据表中存储于固态硬盘SSD介质上的数据。9.一种执行计划的生成装置,其特征在于,所述执行计划包括第一分执行计划和第二分执行计划,所述生成装置包括:解析器,用于解析得到的数据操纵语言DML语句,以确定所述DML语句对应的第一数据表,所述第一数据表包括存储在固态硬盘S...
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。