西北工业大学吴杨获国家专利权
买专利卖专利找龙图腾,真高效! 查专利查商标用IPTOP,全免费!专利年费监控用IP管家,真方便!
龙图腾网获悉西北工业大学申请的专利一种基于树形无效动作屏蔽的DQN数据库索引推荐方法获国家发明授权专利权,本发明授权专利权由国家知识产权局授予,授权公告号为:CN115658681B 。
龙图腾网通过国家知识产权局官网在2025-06-20发布的发明授权授权公告中获悉:该发明授权的专利申请号/专利号为:202211143364.6,技术领域涉及:G06F16/22;该发明授权一种基于树形无效动作屏蔽的DQN数据库索引推荐方法是由吴杨;李宁;潘天蕊;张利军设计研发完成,并于2022-09-20向国家知识产权局提交的专利申请。
本一种基于树形无效动作屏蔽的DQN数据库索引推荐方法在说明书摘要公布了:本发明公开了一种基于树形无效动作屏蔽的DQN数据库索引推荐方法,在给定数据库表结构、数据、查询负载的情况下可为数据库设计与运维人员推荐最优的索引设计方案。在传统DQN的基础上,首先使用DoubleDQN和DuelingDQN技术进行改进,其次依据复合索引的最左原则,选择已推荐的索引,在其右边新增列,产生新的复合索引,并用树形结构统计候选索引,在训练DQN时采用无效动作屏蔽的方法,使强化学习智能体只选择有效的索引,以实现自动最优索引配置,提升了强化学习模型的效率。
本发明授权一种基于树形无效动作屏蔽的DQN数据库索引推荐方法在权利要求书中公布了:1.一种基于树形无效动作屏蔽的DQN数据库索引推荐方法,其特征在于,包括如下步骤: 步骤1:定义DQN的状态、动作、收益和神经网络结构; 步骤1-1:状态:对于单列索引的推荐,统计查询负载中所有查询涉及的列,每个列作为一个候选索引,排成一个数组,采用独热码的表示方式,相应位置上0表示不建立该索引,1表示建立该索引,将当前已经建立的索引作为状态;对于多列索引的推荐,与单列索引类似,数组的每一个位置表示一个多列的复合索引,同样采用独热码的方式表示一个状态下索引的建立情况; 步骤1-2:动作:智能体在一个状态下选择建立一个索引的处理,用一维数组表示,数组相应位置的值表示选择该动作即建立相应索引的Q值即动作价值函数; 采用epsilon贪婪的方法选择动作,在贪婪策略中,选择最大Q值对应的动作; 步骤1-3:收益:用每一步的索引配置相比上一步索引配置下查询执行时间的相对减少量表示收益大小;用X0表示初始索引配置,Xt表示第t步后的索引配置; 采用下式作为收益函数,鼓励智能体选择最大化减少代价的动作: Xt+1=Xt∪πX,Xt,W 其中,RXt表示第t步时的收益函数,CostW,Xt表示在第t步索引为Xt时负载的执行代价;πX,Xt,W表示在第t步针对负载W从候选索引组X中新选择的索引;第t+1步时的索引Xt+1是Xt和新选择索引的并集; 步骤1-4:神经网络结构:采用三层全连接结构神经网络;该神经网络的输入是当前索引配置状态,维度等于候选索引的个数,第一层将状态空间维度数转换为1024,第二层的输入和输出维度相同仍为1024,最后一层输出的维度是动作空间的维度,即候选索引的个数,代表输入状态下选择一个动作对应的动作价值函数;每一层用均值为0、方差为1的高斯分布进行参数的归一化; 步骤2:构建待进行索引推荐的数据库环境:定义数据库、表结构,准备表中数据以及待执行的查询负载; 步骤3:初始化神经网络:构建两个形如步骤1-4定义的神经网络结构的神经网络eval-net和target-net,随机初始化两个神经网络中的参数值; 步骤4:生成树形的候选索引统计结构:对于每一张表,用全排列的方式生成符合最左原则的不同宽度的所有候选索引,使用树形结构存储所有候选索引的信息;其中根节点为表名,除根结点外的节点为表中各个属性的一种组合;从单列索引为基础扩展,在其右侧拓展一列成为新的复合索引,作为其孩子节点,以此类推; 步骤5:使用一维数组A描述树形候选索引统计结构:将索引统计树通过先序遍历的方式转换成一个一维结构体数组A,数组A中的每个元素记录了该索引包含的列、其父节点和所有子节点的位置,以及掩蔽的信息即该索引在下一步中是否被选择;valid表示该索引下一步是否可以被选择,Index的Yes或No表示该索引目前是否被建立; 步骤6:构建神经网络的输入数组S:由于神经网络的输入是一维数据,用一维数组S表示,该输入表示强化学习过程中当前的状态;从数组A中抽取Index的信息形成一个整数数组,统计了当前建立的索引,相应位置0表示没有建立该位置的索引,1表示建立索引,初始状态为无索引,即S0全为0; 步骤7:构建掩蔽数组M:用一维数组M表示掩蔽mask,即从数组A中抽取Valid部分形成一个整数数组,True表示在目前状态下可以选择建立对应的索引,False表示不能选择相应索引;初始掩蔽是单列对应位置是True,其他是False; 步骤8:训练神经网络,对于每个episode: 步骤8-1:初始化结构体数组A,状态数组S,掩蔽数组M; 步骤8-2:将当前状态S输入神经网络,得到的输出是和输入等长的一个一维数组S’,其中每个元素表示相应位置建立索引的Q值即收益,用Qs,a表示,即在状态s下选择动作a的Q值;然后,用掩蔽数组M进行掩蔽,即将M中False对应位置的Q值即无效动作设为一个趋近于负无穷的负数,使得无效动作不会被选择;以ε的概率从有效索引选择动作中随机选择,1-ε的概率选择屏蔽后的神经网络输出中Q值最大的动作at=argmaxQs,a; 步骤8-3:执行选择的动作,得到收益和下一状态; 在该过程中需要更新树形统计结构和掩蔽信息,将状态,动作,收益,下一状态,下一状态的掩码存储在回放缓存Cache中; 树形结构和掩码的更新步骤如下:智能体选择一个动作并执行后,将该动作设置为无效,之后不可被重复推荐;此时,将该动作的父节点索引从当前索引集合删去,根据最左原则使用该动作索引的左部分检索;将该动作的子节点对应的动作都标记为有效,下次进行选择,以此类推; 步骤8-4:从回放缓存Cache中采样数据,用随机梯度下降的方法,target-net保持固定,以target-net为目标,用target-net和eval-net两个网络Q值的差的平方作为损失函数,更新eval-net;经过设定轮数后,将target-net的参数更新为eval-net的参数; 步骤8-5:重复步骤8-2到步骤8-4,直到达到空间约束; 步骤8-6:本episode结束后,记录总收益和最终推荐的索引组合,重置环境,将结构体数组A,状态数组S,掩蔽数组M重置为初始值; 步骤9:重复步骤8直到达到设定的最大轮数,在所有episode中选择总收益最大的索引组合,作为对于给定数据库、查询负载、数据量推荐出的最终索引。
如需购买、转让、实施、许可或投资类似专利技术,可联系本专利的申请人或专利权人西北工业大学,其通讯地址为:710072 陕西省西安市友谊西路;或者联系龙图腾网官方客服,联系龙图腾网可拨打电话0551-65771310或微信搜索“龙图腾网”。
1、本报告根据公开、合法渠道获得相关数据和信息,力求客观、公正,但并不保证数据的最终完整性和准确性。
2、报告中的分析和结论仅反映本公司于发布本报告当日的职业理解,仅供参考使用,不能作为本公司承担任何法律责任的依据或者凭证。