一种基于分片索引的自适应查询方法和装置制造方法及图纸

技术编号:36905528 阅读:11 留言:0更新日期:2023-03-18 09:24
本申请提供了一种基于分片索引的自适应查询方法和装置,用于预设结构化查询语言语句在数据库中动态选择索引进行数据查询,所述方法包括:依据所述数据库内的数据表生成若干个数据分区,并通过若干个所述数据分区构建对应于若干个所述数据分区的索引;依据所述索引确定对应于若干个所述数据分区的若干个索引状态信息;依据所述预设结构化查询语言语句、若干个所述索引状态信息和若干个所述数据分区确定访问的目标数据分区;依据所述预设结构化查询语言语句和所述目标数据分区生成执行计划;依据所述执行计划在所述目标数据分区中进行数据查询。提高实时/准实时数据仓库系统中数据加载和使用同时进行时的查询访问效率;最大程度提升查询速度。大程度提升查询速度。大程度提升查询速度。

【技术实现步骤摘要】
一种基于分片索引的自适应查询方法和装置


[0001]本申请涉及数据查询处理领域,特别是一种基于分片索引的自适应查询方法和装置。

技术介绍

[0002]传统型数据库/数据仓库中,数据大多采用非实时一次性ETL(Extract

Transform

Load,数据仓库技术)的数据加载方式,在加载过程中,In

Flight数据是不能访问的,要完全加载准备完毕后才可以访问,这包括后续查询会使用的索引。
[0003]现有技术方案包括传统索引方案、基于历史表的技术以及物化视图。
[0004]在现有技术中,维护或创建过程时,索引无法被使用;且数据较少更新和维护,物化视图在维护过程不可使用;传统数据库在索引创建过程中是无法使用索引的,通常索引创建是非常耗时的操作;对于应用要求越来越迫切的实时/准实时数据仓库系统,数据的加载和访问需要同时支持,如果加载过程中,索引等数据加速结构不可以使用,会极大的降低查询的效率。

技术实现思路

[0005]鉴于所述问题,提出了本申请以便提供克服所述问题或者至少部分地解决所述问题的一种基于分片索引的自适应查询方法和装置,包括:
[0006]一种基于分片索引的自适应查询方法,用于预设结构化查询语言语句在数据库中动态选择索引进行数据查询,所述方法包括:
[0007]依据所述数据库内的数据表生成若干个数据分区,并通过若干个所述数据分区构建对应于若干个所述数据分区的索引;
[0008]依据所述索引确定对应于若干个所述数据分区的若干个索引状态信息;
[0009]依据所述预设结构化查询语言语句、若干个所述索引状态信息和若干个所述数据分区确定访问的目标数据分区,其中,所述索引状态信息包括已创建、正在创建和未创建;
[0010]依据所述预设结构化查询语言语句和所述目标数据分区生成执行计划;
[0011]依据所述执行计划在所述目标数据分区中进行数据查询。
[0012]进一步地,所述依据所述数据库内的数据表生成若干个数据分区的步骤,包括:
[0013]在所述数据表中获取分区列表;
[0014]依据所述分区列表生成若干个所述数据分区。
[0015]进一步地,所述通过若干个所述数据分区构建对应于若干个所述数据分区的索引的步骤,包括:
[0016]确定若干个所述数据分区是否有效;
[0017]当若干个所述数据分区均有效时,则获取若干个所述数据分区内的所有数据;
[0018]对所述所有数据中的每一条数据构建对应的所述索引。
[0019]进一步地,所述依据所述索引确定对应于若干个所述数据分区的若干个索引状态
信息的步骤,包括:
[0020]确定对应于所述索引的索引分区状态表;
[0021]依据所述索引分区状态表生成对应于若干个所述数据分区的若干个所述索引状态信息。
[0022]进一步地,所述依据所述预设结构化查询语言语句、若干个所述索引状态信息和若干个所述数据分区确定访问的目标数据分区,其中,所述索引状态信息包括已创建、正在创建和未创建的步骤,包括:
[0023]依据若干个所述索引状态信息在若干个所述数据分区确定所述索引状态信息为所述已创建的所有数据分区;
[0024]在所述所有数据分区中通过所述预设结构化查询语言语句确定所述目标数据分区。
[0025]进一步地,所述在所述所有数据分区中通过所述预设结构化查询语言语句确定所述目标数据分区的步骤,包括:
[0026]确定所述预设结构化查询语言语句在所述数据库是否存在查询计划;
[0027]当所述预设结构化查询语言语句在所述数据库不存在所述查询计划时,则对所述预设结构化查询语言语句进行解析生成特征信息;
[0028]在所述所有数据分区中依据所述特征信息确定所述目标数据分区。
[0029]进一步地,所述依据所述执行计划在所述目标数据分区中进行数据查询的步骤,包括:
[0030]依据所述执行计划和所述目标数据分区确定访问路径;
[0031]依据所述访问路径进行数据查询。
[0032]本专利技术实施例还提供了一种基于分片索引的自适应查询优化装置,用于预设结构化查询语言语句在数据库中动态选择索引进行数据查询,所述装置包括:
[0033]构建模块,用于依据所述数据库内的数据表生成若干个数据分区,并通过若干个所述数据分区构建对应于若干个所述数据分区的索引;
[0034]第一确定模块,用于依据所述索引确定对应于若干个所述数据分区的若干个索引状态信息;
[0035]第二确定模块,用于依据所述预设结构化查询语言语句、若干个所述索引状态信息和若干个所述数据分区确定访问的目标数据分区,其中,所述索引状态信息包括已创建、正在创建和未创建;
[0036]生成模块,用于依据所述预设结构化查询语言语句和所述目标数据分区生成执行计划;
[0037]查询模块,用于依据所述执行计划在所述目标数据分区中进行数据查询。
[0038]本专利技术实施例还提供了一种设备,包括处理器、存储器及存储在所述存储器上并能够在所述处理器上运行的计算机程序,所述计算机程序被所述处理器执行时实现如上所述的一种基于分片索引的自适应查询方法的步骤。
[0039]本专利技术实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储计算机程序,所述计算机程序被处理器执行时实现如上所述的一种基于分片索引的自适应查询方法的步骤。
[0040]本申请具有以下优点:
[0041]在本申请的实施例中,相对于现有技术中的加载过程中,索引等数据加速结构不可以使用的问题,本申请提供了依据所述索引确定对应于若干个所述数据分区的若干个索引状态信息,依据所述预设结构化查询语言语句、若干个所述索引状态信息和若干个所述数据分区确定访问的目标数据分区,依据所述预设结构化查询语言语句和所述目标数据分区生成执行计划的解决方案,具体为:依据所述数据库内的数据表生成若干个数据分区,并通过若干个所述数据分区构建对应于若干个所述数据分区的索引;依据所述索引确定对应于若干个所述数据分区的若干个索引状态信息;依据所述预设结构化查询语言语句、若干个所述索引状态信息和若干个所述数据分区确定访问的目标数据分区,其中,所述索引状态信息包括已创建、正在创建和未创建;依据所述预设结构化查询语言语句和所述目标数据分区生成执行计划;依据所述执行计划在所述目标数据分区中进行数据查询。通过执行计划解决了加载过程中,索引等数据加速结构不可以使用的问题达到了分片索引技术会在维护索引的同时,记录表的每个数据分区上索引维护状态,对于已经维护完毕索引的数据分区,状态上设置索引维护状态为完成,进行维护和尚未维护的状态,扫描数据时对于正在维护或者尚未维护索引的数据分区,采用动态扫描分区的方式,通过同时实现索引和表分区扫描;
[0042]对于查询,最大程度上利用索引的能力,同时又不本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种基于分片索引的自适应查询方法,其特征在于,用于预设结构化查询语言语句在数据库中动态选择索引进行数据查询,所述方法包括:依据所述数据库内的数据表生成若干个数据分区,并通过若干个所述数据分区构建对应于若干个所述数据分区的索引;依据所述索引确定对应于若干个所述数据分区的若干个索引状态信息;依据所述预设结构化查询语言语句、若干个所述索引状态信息和若干个所述数据分区确定访问的目标数据分区,其中,所述索引状态信息包括已创建、正在创建和未创建;依据所述预设结构化查询语言语句和所述目标数据分区生成执行计划;依据所述执行计划在所述目标数据分区中进行数据查询。2.根据权利要求1所述的方法,其特征在于,所述依据所述数据库内的数据表生成若干个数据分区的步骤,包括:在所述数据表中获取分区列表;依据所述分区列表生成若干个所述数据分区。3.根据权利要求1所述的方法,其特征在于,所述通过若干个所述数据分区构建对应于若干个所述数据分区的索引的步骤,包括:确定若干个所述数据分区是否有效;当若干个所述数据分区均有效时,则获取若干个所述数据分区内的所有数据;对所述所有数据中的每一条数据构建对应的所述索引。4.根据权利要求1所述的方法,其特征在于,所述依据所述索引确定对应于若干个所述数据分区的若干个索引状态信息的步骤,包括:确定对应于所述索引的索引分区状态表;依据所述索引分区状态表生成对应于若干个所述数据分区的若干个所述索引状态信息。5.根据权利要求1所述的方法,其特征在于,所述依据所述预设结构化查询语言语句、若干个所述索引状态信息和若干个所述数据分区确定访问的目标数据分区,其中,所述索引状态信息包括已创建、正在创建和未创建的步骤,包括:依据若干个所述索引状态信息在若干个所述数据分区确定所述索引状态信息为所述已创建的所有数据分区;在所述所有数据分区中通过所述预设结构化查询语言...

【专利技术属性】
技术研发人员:陈志标徐晓锋化明虎
申请(专利权)人:深圳计算科学研究院
类型:发明
国别省市:

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

1