CN114579579A - 一种基于深度强化学习的索引选择方法 - Google Patents
一种基于深度强化学习的索引选择方法 Download PDFInfo
- Publication number
- CN114579579A CN114579579A CN202210255497.6A CN202210255497A CN114579579A CN 114579579 A CN114579579 A CN 114579579A CN 202210255497 A CN202210255497 A CN 202210255497A CN 114579579 A CN114579579 A CN 114579579A
- Authority
- CN
- China
- Prior art keywords
- index
- training
- database
- query
- sequence
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/22—Indexing; Data structures therefor; Storage structures
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F16/00—Information retrieval; Database structures therefor; File system structures therefor
- G06F16/20—Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
- G06F16/24—Querying
- G06F16/245—Query processing
- G06F16/2455—Query execution
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Databases & Information Systems (AREA)
- Computational Linguistics (AREA)
- Artificial Intelligence (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及电通信技术领域,具体涉及一种基于深度强化学习的索引选择方法,包括创建数据库实例;根据数据库实例和指定规则分别生成训练工作负载和测试工作负载;根据五条启发式规则分析训练工作负载,生成候选索引;基于候选索引设置本次训练的索引限制条件,并基于索引限制条件训练索引选择智能体;使用索引选择智能体在测试工作负载上选择最优索引组合;在数据库实例创建索最优索引组合,针对具体的实例添加相应的索引,从而提升数据库系统的查询性能,解决了现有的索引选择方法未考虑索引交互带来的影响,会存在随着索引数量增加而查询提升率下降的情况的问题。
Description
技术领域
本发明涉及电通信技术领域,尤其涉及一种基于深度强化学习的索引选择方法。
背景技术
数据库系统已经在行业中成熟而稳定地运行,而大数据时代为数据库系统提出了更高的要求。数据量增大,要求数据库系统能够具备更快的查询速度、更高的系统吞吐量。数据的类型模式不断增多,使得工作负载具有快速而又多样化的特点,要求数据库系统能够具备快速、准确地响应查询负载动态变化的能力。随着数据规模的不断增大,数据库性能的调优对研究人员、企业和数据库管理员也变得越来越重要。数据库性能调优的一个重要的方面是选择合适的索引。
在系统中设置适当的索引可以加快数据的访问过程。现有的索引选择方法未考虑索引时具体的应用需求、数据分布特点等交互带来的影响,会存在随着索引数量增加而查询提升率下降的情况,从而造成不合适的索引,使用不合适的索引不仅浪费资源,而且还会对系统造成不必要的磁盘开销与索引维护代价,例如插入、更新和删除查询引起的索引更新,从而降低其性能。
发明内容
本发明的目的在于提供一种基于深度强化学习的索引选择方法,旨在解决现有的索引选择方法未考虑索引交互带来的影响,会存在随着索引数量增加而查询提升率下降的情况的问题。
为实现上述目的,本发明提供了一种基于深度强化学习的索引选择方法,包括以下步骤:
S1创建数据库实例;
S2根据所述数据库实例和指定规则分别生成训练工作负载和测试工作负载;
S3根据五条启发式规则分析所述训练工作负载,生成候选索引;
S4基于所述候选索引设置本次训练的索引限制条件,并基于所述索引限制条件训练索引选择智能体;
S5使用所述索引选择智能体在所述测试工作负载上选择最优索引组合;
S6在所述数据库实例创建索所述最优索引组合。
其中,所述创建数据库实例的具体方式为:
使用TPC-H工具生成1GB数据,并将所述数据加载到数据库,得到数据库实例。
其中,五条所述启发式规则分别为:
将查询语句中所有出现的属性设为单列索引;
将第一字符后面的等值查询和范围查询关联的属性作为多列索引,且索引中的顺序和查询语句中的排列顺序一致;
若出现第二字符,多列索引需要包含对应关联的属性,且保持顺序一致;
若有具体要查询的属性,多列索引需包含全部要查询的属性,即为覆盖索引;
若出现多表多属性连接查询,将连接查询处的每个表所有连接属性分别设为多列索引。
其中,所述基于所述索引限制条件训练索引选择智能体的具体方式为:
S40对索引选择智能体的经验回放池、目标网络更新频率、估计Q网络参数和目标网络参数进行定义;
S41初始化所述数据库的环境状态,得到初始化数据库;
S42使所述索引选择智能在所述初始化数据库中的预设概率下满足预设动作;
S43执行所述预设动作,观测获得奖励和下一状态,并将当前状态、所述预设动作、所述奖励和所述下一状态整理,得到储存序列;
S44将所述储存序列输入到所述经验回放池,并更新所述储存序列的优先级;
S45在所述经验回放池中依据所述优先级从所述储存序列中抽取批量训练数据进行更新,得到采样序列;
S46基于所述预设动作、所述储存序列、所述采样序列和所述估计Q网络参数计算目标Q值;
S47基于所述目标Q值计算所述索引选择智能的损失函数,得到计算结果,根据所述计算结果更新当前的所述估计Q网络参数;
S48每间隔所述目标网络更新频率后对所述目标网络参数;
S49迭代步骤S40至S48,直至迭代次数到达指定次数,训练完成。
本发明的一种基于深度强化学习的索引选择方法,通过创建数据库实例;根据所述数据库实例和指定规则分别生成训练工作负载和测试工作负载;根据五条启发式规则分析所述训练工作负载,生成候选索引;基于所述候选索引设置本次训练的索引限制条件,并基于所述索引限制条件训练索引选择智能体;使用所述索引选择智能体在所述测试工作负载上选择最优索引组合;在所述数据库实例创建索所述最优索引组合,针对具体的实例添加相应的索引,从而提升数据库系统的查询性能,解决了现有的索引选择方法未考虑索引交互带来的影响,会存在随着索引数量增加而查询提升率下降的情况的问题。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明提供的一种基于深度强化学习的索引选择方法的流程图。
图2是训练索引选择智能体的流程图。
图3是平均累积奖励值随训练步数的变化图。
图4是AutoAdmin与DDQN-MC的查询效率提升率对比图。
图5是NoDBA与DDQN-MC的查询性能提升率对比图。
具体实施方式
下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,旨在用于解释本发明,而不能理解为对本发明的限制。
请参阅图1至图5,本发明提供一种基于深度强化学习的索引选择方法,包括以下步骤:
S1创建数据库实例;
具体方式为:使用TPC-H工具生成1GB数据,并将所述数据加载到数据库,得到数据库实例。
具体的,以SELECT T_A.C_B FROM...WHERE....为模板,然后随机选择操作符[>,<,=]和谓词[AND,OR,JOIN]和聚合[GROUP-BY,ORDER-BY],通过在一列到三列之间随机创建查询条件,创建了五组不同类型的查询语句,每组各生成四条查询语句,类型示例如表1所示:
表1查询语句示例表
S2根据所述数据库实例和指定规则分别生成训练工作负载和测试工作负载;
具体的,将T_A和C_B的值随机地从数据库中选择或者用COUNT(*)替代,分别生成训练工作负载和测试工作负载各20条查询语句。
S3根据五条启发式规则分析所述训练工作负载,生成候选索引;
具体的,在一条查询语句中,对在谓词条件、连接条件、GROUP-BY条件、ORDER-BY条件关联的属性创建索引能最大程度提升查询效率。因此文中设计五条启发式规则,能最大程度提供高质量的候选索引。五条所述启发式规则分别为:
将查询语句中所有出现的属性设为单列索引;
将第一字符(WHERE)后面的等值查询和范围查询关联的属性作为多列索引,且索引中的顺序和查询语句中的排列顺序一致;
若出现第二字符(ORDER-BY和GROUP-BY),多列索引需要包含对应关联的属性,且保持顺序一致;
若有具体要查询的属性,多列索引需包含全部要查询的属性,即为覆盖索引;
若出现多表多属性连接查询,将连接查询处的每个表所有连接属性分别设为多列索引。
候选索引的生成:
假设有一张含有n列的表,在该表建立一个维度为i(1≤i≤n)的索引,索引的第一列有n种选择,第二列有n-1中选择,以此类推这张表可能索引数量为:
如果一张表有10列,就有10种不同的可能性1个属性的索引,有90种2个属性的可能性索引,以及5个属性的30240种不同可能性索引。如果要实现多列索引的选择,采用枚举的方法生成候选索引的数量将会非常大,因此需要通过使用索引评价规则生成候选索引,限制候选索引的数量,可以降低深度强化学习中的动作维度和状态维度。
S4基于所述候选索引设置本次训练的索引限制条件,并基于所述索引限制条件训练索引选择智能体;
具体方式为:S40对索引选择智能体的经验回放池、目标网络更新频率、估计Q网络参数和目标网络参数进行定义;
具体的,首先定义索引选择智能体的输入,经验回放池D,容量N,训练回合数V,每回合训练步数T,目标网络更新频率C,估计Q网络参数θ,目标网络参数θ-。
S41初始化所述数据库的环境状态,得到初始化数据库;
具体的,基于深度强化学习的索引选择智能体基本要素可表示为:
(1)环境(environment):基于Postgresql数据库的TPC-H实例。
(2)智能体(agent):智能体是索引选择调优,它接收来自环境的状态和奖励,并在每一步更新策略以选择合适的索引。
(3)动作(action):在索引选择过程中,动作at可表示为在步骤t时,在候选索引I中选择一个索引i,i∈I。
(4)状态(state):状态st由一个向量表示,初始化都为0,每个位置表示当前候选索引的选择与否,当选择某个索引时,将其对应位置设置为1,表示已经选择,状态空间维度等于动作空间维度,也就是候选索引的数量。
(5)策略(policy):策略是从状态映射到动作的函数,策略π从s0开始,在每个时间步下选择一个索引,进入下一个状态st+1,这个过程重复进行,直到达到索引数量限制。执行完策略的结果是选择过的索引集合。
(6)奖励(reward):强化学习中,奖励是智能体不断完善自己,使自己能够自主实现目标的直接经验来源。在设计奖励函数时充分考虑了索引交互的影响,并且也考虑了当前索引配置下的查询性能的变化,将当前索引配置下Cost(W,It)与初始化下索引配置下Cost(W,I0)以及上一次索引选择配置下Cost(W,It-1)进行比较,其奖励函数如公式(6)。
α和β为两个取值范围为[0,1]的因子,用于调节索引交互对于奖励的影响,α/β越大,说明智能体越重视当前索引配置相对于上一次索引配置的带来查询性能的变化,也就是索引交互可能带来的影响,而不是考虑当前索引配置相对于初始状态下查询性能的变化。
S42使所述索引选择智能在所述初始化数据库中的预设概率下满足预设动作;
具体的,在状态st下索引选择智能体在概率为ε下选择满足公式(1)的动作at(所述预设动作),即选择下一个索引:
S43执行所述预设动作,观测获得奖励和下一状态,并将当前状态、所述预设动作、所述奖励和所述下一状态整理,得到储存序列;
具体的,将当前状态st、所述预设动作at、所述奖励rt和所述下一状态st+1整理,得到储存序列(st,at,rt,st+1)。
S44将所述储存序列(st,at,rt,st+1)输入到所述经验回放池D,并更新所述储存序列的优先级;
S45在所述经验回放池中依据所述优先级从所述储存序列中抽取批量训练数据进行更新,得到采样序列;
S46基于所述预设动作、所述储存序列、所述采样序列和所述估计Q网络参数计算目标Q值;
具体的,依据公式(2)计算目标Q值yt;
S47基于所述目标Q值计算所述索引选择智能的损失函数,根据公式(3)对损失函数计算,并根据计算的结果,进行当前Q网络参数的更新;
S48每间隔所述目标网络更新频率后对所述目标网络参数;
具体的,每隔频率C更新目标网络参数θ-←θ。
S49迭代步骤S40至S48,直至迭代次数到达指定次数,训练完成。
具体的,训练完成之后,所述索引选择智能体学到最优策略。
S5使用所述索引选择智能体在所述测试工作负载上选择最优索引组合;
S6在所述数据库实例创建索所述最优索引组合。
为了验证本发明提出的方法(简称为DDQN-MC)的有效性,将其与分别与传统索引选择方法AutoAdmin和同样基于深度强化学习的NoDBA方法进行比较,以在运行相同工作负载下时数据库的查询效率的提升(即索引选择后执行效率的提升)为标准进行对比分析。以查询效率的提升作为对比的标准可以一定程度上减轻了硬件条件对本次实验的影响。
图3显示了DDQN-MC在索引数量限制为3的训练过程中奖励平均值的变化,可以看到随着训练步数的增加,算法的性能逐渐提高,当训练步数增加500次时,奖励的平均值开始趋于稳定和收敛。奖励的波动表明索引选择智能体的持续探索行为。
AutoAdmin是针对Microsoft SQL Server的提出索引选择算法,能同时推荐单列索引和多列索引,为了能与DDQN-MC进行比较,本文使用针对Postgresql实现的AutoAdmin进行比较,工作负载为文中提出的模板随机生成,限制条件为索引数量。
从图4可以看出,DDQN-MC选择的索引带来的查询效率提升率是随着索引的数量增多而升高,且在相同索引数量下DDQN-MC选择的索引带来的查询效率提升都要明显高于AutoAdmin选择的索引.因为没有充分考虑到索引交互带来的影响,AutoAdmin在索引数量为3和6时分别相对与索引数量为2和5时,都出现了查询提升率小幅度的下降,但DDQN-MC考虑到索引交互带来的影响,没有出现这种情况。实验结果表明在给定工作负载下和限制条件下DDQN-MC相对于AutoAdmin能选择更优的索引组合。
NoDBA将工作负载和当前索引配置作为神经网络的输入,并使用深度强化学习与自定义奖励功能实现索引选择智能体,但是其无法推荐多列索引。因为NoDBA无法对包含多表连接查询语句的工作负载进行索引选择,为了能与DDQN-MC进行比较,这次对比实验的工作负载使用NoDBA提出的随机工作负载模板生成,以SELECT COUNT(*)FROM LINEITEM第一字符....为模板,随机选择操作符[>,<,=]和谓词AND,通过在一列到七列之间随机创建查询条件,分别生成训练工作负载和测试工作负载各10条查询语句。
由于工作负载中的查询语句都只对LINEITEM表进行操作,同时DDQN-MC可以推荐单列索引和多列索引,通过图5实验结果可以明显看出DDQN-MC在相同工作负载和相同索引数量下选择的索引组合相对于NoDBA能更大地提升数据库系统的查询性能。NoDBA在设计奖励函数时只考虑当前索引配置相对于初始状态下数据库系统查询性能的变化,也没有考虑到索引交互的影响,所以出现随着索引数量的增加查询性能提升率增加缓慢甚至倒退。
通过在不同场景下进行对比,DDQN-MC都能选择出更优的索引组合,有效地提升了数据库的查询性能。
以上所揭露的仅为本发明一种基于深度强化学习的索引选择方法较佳实施例而已,当然不能以此来限定本发明之权利范围,本领域普通技术人员可以理解实现上述实施例的全部或部分流程,并依本发明权利要求所作的等同变化,仍属于发明所涵盖的范围。
Claims (4)
1.一种基于深度强化学习的索引选择方法,其特征在于,包括以下步骤:
S1创建数据库实例;
S2根据所述数据库实例和指定规则分别生成训练工作负载和测试工作负载;
S3根据五条启发式规则分析所述训练工作负载,生成候选索引;
S4基于所述候选索引设置本次训练的索引限制条件,并基于所述索引限制条件训练索引选择智能体;
S5使用所述索引选择智能体在所述测试工作负载上选择最优索引组合;
S6在所述数据库实例创建索所述最优索引组合。
2.如权利要求1所述的基于深度强化学习的索引选择方法,其特征在于,
所述创建数据库实例的具体方式为:
使用TPC-H工具生成1GB数据,并将所述数据加载到数据库,得到数据库实例。
3.如权利要求1所述的基于深度强化学习的索引选择方法,其特征在于,
五条所述启发式规则分别为:
将查询语句中所有出现的属性设为单列索引;
将第一字符后面的等值查询和范围查询关联的属性作为多列索引,且索引中的顺序和查询语句中的排列顺序一致;
若出现第二字符,多列索引需要包含对应关联的属性,且保持顺序一致;
若有具体要查询的属性,多列索引需包含全部要查询的属性,即为覆盖索引;
若出现多表多属性连接查询,将连接查询处的每个表所有连接属性分别设为多列索引。
4.如权利要求2所述的基于深度强化学习的索引选择方法,其特征在于,
所述基于所述索引限制条件训练索引选择智能体的具体方式为:
S40对索引选择智能体的经验回放池、目标网络更新频率、估计Q网络参数和目标网络参数进行定义;
S41初始化所述数据库的环境状态,得到初始化数据库;
S42使所述索引选择智能在所述初始化数据库中的预设概率下满足预设动作;
S43执行所述预设动作,观测获得奖励和下一状态,并将当前状态、所述预设动作、所述奖励和所述下一状态整理,得到储存序列;
S44将所述储存序列输入到所述经验回放池,并更新所述储存序列的优先级;
S45在所述经验回放池中依据所述优先级从所述储存序列中抽取批量训练数据进行更新,得到采样序列;
S46基于所述预设动作、所述储存序列、所述采样序列和所述估计Q网络参数计算目标Q值;
S47基于所述目标Q值计算所述索引选择智能的损失函数,得到计算结果,并根据所述计算结果更新当前的所述估计Q网络参数;
S48每间隔所述目标网络更新频率后对所述目标网络参数;
S49迭代步骤S40至S48,直至迭代次数到达指定次数,训练完成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210255497.6A CN114579579A (zh) | 2022-03-15 | 2022-03-15 | 一种基于深度强化学习的索引选择方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202210255497.6A CN114579579A (zh) | 2022-03-15 | 2022-03-15 | 一种基于深度强化学习的索引选择方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114579579A true CN114579579A (zh) | 2022-06-03 |
Family
ID=81774927
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202210255497.6A Pending CN114579579A (zh) | 2022-03-15 | 2022-03-15 | 一种基于深度强化学习的索引选择方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN114579579A (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115686583A (zh) * | 2023-01-04 | 2023-02-03 | 徐工汉云技术股份有限公司 | 海量物联网设备升级方法、装置、电子设备和存储介质 |
-
2022
- 2022-03-15 CN CN202210255497.6A patent/CN114579579A/zh active Pending
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115686583A (zh) * | 2023-01-04 | 2023-02-03 | 徐工汉云技术股份有限公司 | 海量物联网设备升级方法、装置、电子设备和存储介质 |
CN115686583B (zh) * | 2023-01-04 | 2023-03-21 | 徐工汉云技术股份有限公司 | 海量物联网设备升级方法、装置、电子设备和存储介质 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Marcus et al. | Plan-structured deep neural network models for query performance prediction | |
US7814113B2 (en) | Efficient top-K query evaluation on probabilistic data | |
EP2369506B1 (en) | System and method of optimizing performance of schema matching | |
LEONG et al. | Capacity constrained assignment in spatial databases | |
Silva et al. | Exploiting common subexpressions for cloud query processing | |
Schnaitter et al. | Evaluating rank joins with optimal cost | |
US10877973B2 (en) | Method for efficient one-to-one join | |
CN114579579A (zh) | 一种基于深度强化学习的索引选择方法 | |
Zhang et al. | AlphaJoin: Join Order Selection à la AlphaGo. | |
Chen et al. | Efficient batch processing for multiple keyword queries on graph data | |
Lofi et al. | On skyline queries and how to choose from pareto sets | |
CN111723076A (zh) | 一种生成数据库索引的方法和装置 | |
Schnaitter et al. | Optimal algorithms for evaluating rank joins in database systems | |
Ślęzak et al. | Automatic extraction of decision rules from non-deterministic data systems: Theoretical foundations and SQL-based implementation | |
US20230315709A1 (en) | Training an agent for iterative multi-attribute index selection | |
Ye et al. | Incorporating user's preference into attributed graph clustering | |
Medina et al. | Evaluation of indexing strategies for possibilistic queries based on indexing techniques available in traditional RDBMS | |
Mishra et al. | The design of a query monitoring system | |
Nguyen et al. | An efficient multi-objective optimization approach for online test paper generation | |
CN112162986B (zh) | 一种并行top-k范围skyline查询方法和系统 | |
Aluç et al. | Parametric plan caching using density-based clustering | |
WO2021248319A1 (en) | Database management system and method for graph view selection for relational-graph database | |
Butka et al. | A proposal of the information retrieval system based on the generalized one-sided concept lattices | |
Huang et al. | ACR-Tree: Constructing R-Trees Using Deep Reinforcement Learning | |
Jain et al. | Exploring a few good tuples from text databases |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |