CN113836174B - 基于强化学习dqn算法的异步sql连接查询优化方法 - Google Patents
基于强化学习dqn算法的异步sql连接查询优化方法 Download PDFInfo
- Publication number
- CN113836174B CN113836174B CN202111219371.5A CN202111219371A CN113836174B CN 113836174 B CN113836174 B CN 113836174B CN 202111219371 A CN202111219371 A CN 202111219371A CN 113836174 B CN113836174 B CN 113836174B
- Authority
- CN
- China
- Prior art keywords
- tree
- connection
- sql
- training
- query
- 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.)
- Active
Links
- 238000000034 method Methods 0.000 title claims abstract description 32
- 230000002787 reinforcement Effects 0.000 title claims abstract description 20
- 238000005457 optimization Methods 0.000 title claims abstract description 15
- 238000012549 training Methods 0.000 claims abstract description 61
- 239000013598 vector Substances 0.000 claims abstract description 25
- 238000004364 calculation method Methods 0.000 claims abstract description 20
- 230000009471 action Effects 0.000 claims description 9
- 230000001360 synchronised effect Effects 0.000 claims description 8
- 238000012360 testing method Methods 0.000 claims description 7
- 239000003795 chemical substances by application Substances 0.000 claims description 6
- 239000000284 extract Substances 0.000 claims description 3
- 230000007774 longterm Effects 0.000 claims description 3
- 238000010801 machine learning Methods 0.000 claims description 3
- 238000005070 sampling Methods 0.000 claims description 3
- 230000008569 process Effects 0.000 description 12
- 230000006870 function Effects 0.000 description 8
- 238000007726 management method Methods 0.000 description 8
- 238000013528 artificial neural network Methods 0.000 description 6
- 238000002474 experimental method Methods 0.000 description 6
- 239000011159 matrix material Substances 0.000 description 6
- 238000010586 diagram Methods 0.000 description 3
- 230000004913 activation Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 2
- 210000004027 cell Anatomy 0.000 description 2
- 238000006243 chemical reaction Methods 0.000 description 2
- 238000011156 evaluation Methods 0.000 description 2
- 230000007246 mechanism Effects 0.000 description 2
- 239000000203 mixture Substances 0.000 description 2
- 230000001668 ameliorated effect Effects 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 230000002457 bidirectional effect Effects 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000013135 deep learning Methods 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000012217 deletion Methods 0.000 description 1
- 230000037430 deletion Effects 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 230000014509 gene expression Effects 0.000 description 1
- 210000001153 interneuron Anatomy 0.000 description 1
- 238000007781 pre-processing Methods 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 238000011160 research Methods 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
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/24—Querying
- G06F16/242—Query formulation
- G06F16/2433—Query languages
-
- 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
- G06F16/2228—Indexing structures
- G06F16/2246—Trees, e.g. B+trees
-
- 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/2453—Query optimisation
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/044—Recurrent networks, e.g. Hopfield networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Software Systems (AREA)
- Mathematical Physics (AREA)
- Biomedical Technology (AREA)
- General Health & Medical Sciences (AREA)
- Molecular Biology (AREA)
- Computing Systems (AREA)
- Evolutionary Computation (AREA)
- Biophysics (AREA)
- Artificial Intelligence (AREA)
- Life Sciences & Earth Sciences (AREA)
- Health & Medical Sciences (AREA)
- Databases & Information Systems (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明涉及基于强化学习DQN算法的异步SQL连接查询优化方法,属于计算机技术领域。本发明在Tree‑LSTM网络的每层单元的输出后,增加一层注意力(Attention)层,把LSTM网络每层的输出向量再做重新进行加权计算。从而突出此隐藏层就近的左右隐藏层的传递的数据特征;本发明利用Python的多线程编程,同时构造多个DRL深度强化学习模块,共享模型训练数据,从而做到多训练模块异步执行,大大增加模型训练速度。
Description
技术领域
本发明涉及基于强化学习DQN算法的异步SQL连接查询优化方法,属于计算机技术领域。
背景技术
传统的数据库领域在查询优化方面已经做了很多努力,查询优化是为计算SQL关系表达式选择最有效且代价最小的查询计划的过程。
在关系数据库中,连接次序的选择对于查询性能具有十分重要影响,并且一直是数据库系统中广泛研究的问题之一。传统的查询优化器通常使用静态连接次序枚举算法,这些算法不包含关于产生的查询计划质量好与坏的反馈,因此优化器通常会重复选择同样差的查询计划。此外穷举遍历的方法,空间成本太高。连接次序选择的最终目的是通过枚举候选空间找到代价最小的连接次序,因此枚举器需要在最小化枚举候选空间的同时,能够找到代价最小的连接次序。
图1为传统的查询优化器架构,先枚举所有可能的查询计划集合的部分子集,采用启发式的规则进行基数估计,并输入到代价模型中,选择语义上相等但代价最小的执行计划。
近几年随着深度学习(Deep Learning DL)和强化学习(Reinforcement LearningRL)的提出。连接查询次序选择的研究有了进一步发展。结合DL和RL,先后提出了多种优化模型。例如:DQ,ReJOIN,SkinnerDB等。但是它们使用固定长度的特征向量,这无法表示连接查询树的结构信息,这可能会产生不好的连接次序选择。此外,在处理SQL查询中常见的删除、添加属性列或存在表的多别名时,也可能导致神经网络的重新训练。
最新的RTOS优化模型中,它提出用Tree-LSTM这种图神经网络,表示连接查询树的结构信息,这使得在把特征向量输入模型训练时,可以保存原始查询树的结构特征。此外利用PyTorch的动态计算图功能,可以改善修改表属性和表的多别名的带来的负面影响。
RTOS模型现有技术的缺点。
(1)LSTM网络虽然是双向神经网络,但是它在训练时,每层神经网络都无法捕获就近的中间传递值的特定特征,再经过多层神经网络训练后,这些特征将会被遗忘从而导致模型训练结果不佳。
(2)强化学习本来就是一个类似枚举的学习过程,其模型的训练时间往往很长,甚至达到几十上百个小时。这是强化学习模型普遍存在的一个问题。
基于以上两个缺点,本发明通过改进相关模型。从而改善现有的RTOS模型的技术缺点。
发明内容
本发明提供了基于强化学习DQN算法的异步SQL连接查询优化方法,以用于通过改变LSTM网络结构,使其能对就近中间值的特定的特征,进行重点学习,从而提高模型的准确度;本发明通过改变RTOS模型结构,提升模型的训练速度,减少模型的训练时间。
本发明的技术方案是:基于强化学习DQN算法的异步SQL连接查询优化方法,所述方法的具体步骤如下:
Step1、将SQL语句按照查询谓词进行解析分解,并用抽象语法树AST算法,把解析后的SQL存储为查询树的结构形式;
例如:
select*from user where user_id=1and(product_id=2and(star_num=4orstar_num=5)and banned=1)
上述查询语句的一个AST树生成的实验如图4所示;
Step2、将AST树结构放入DRL网络中的DQN优化器中,进行连接动作的选择;每执行一次连接选择,把生成的包含新的一个表的连接树,传入Tree-LSTM+Attention网络中,经过编码和计算获得一个长期奖励信号,经过多次循环,最终生成一个Agent认为最优的包含所有表的连接顺序的查询树的状态表示State;
Step3、将最终状态表示State转换成一个实际的查询树,输入到现有的数据库管理系统的执行其中,进行代价估计和延迟时间计算;
Step4、将数据库管理系统执行的结果保存到记忆池中,使DQN优化器网络的agent从记忆池中进行反复的多轮次的训练;与此同时,需要把这一部分数据发送到中心单元,实现中心单元数据的同步更新,实现数据的PUSH操作;
Step5、DQN优化器随机从记忆池中抽取样本,进行多轮次训练,一直到指定的训练轮次结束,从而得到一个能输出最优查询连接顺序的DRL网络;
Step6、利用训练好的DRL网络,对测试集SQL数据进行测试,,得到通过机器学习预测的连接查询最优化连接顺序的结果。
作为本发明的进一步方案,所述Step3数据库管理系统采用PostgreSQL数据库本身的数据库管理系统,进行代价估计时的代价模型为PostgreSQL原生自带的代价模型,延迟时间为数据库实际执行某条SQL语句所用的时间。
作为本发明的进一步方案,所述Step4中的中心单元利用了Python的多进程编程,实现多个工作单元同时训练,其中,一个工作单元占用一个CPU核心;同步更新数据时使用锁,用于保证多个工作单元同时更新数据时,中心单元数据的一致性。
作为本发明的进一步方案,所述Step5中,多轮次训练是异步执行,所有工作单元之间用到的模型训练的参数都需要做同步操作,所以在每次随机抽样训练之前,都要从中心单元拉取当前最新的模型参数,实现数据的PULL操作,从而更新本地的工作单元中记忆池的数据和LSTM网络中的参数。
作为本发明的进一步方案,所述Step2中,所述Tree-LSTM+Attention网络是在Tree-LSTM网络的每层单元的输出后,增加一层注意力层;
所述Step2中,把生成的包含新的一个表的连接树,传入Tree-LSTM+Attention网络中时,把LSTM网络每层的原树节点的输出向量表示进行进一步的加权计算。
作为本发明的进一步方案,所述Step2包括如下步骤:
Step2.1、对DQN优化器网络输入参数进行向量编码,输入参数的向量编码包括:
(1)SQL语句Query的编码:令n为数据库中的表数,每个表具有从0到n-1的唯一标识符;令M为每个元素为0或1的n*n矩阵;Mi,j为1表示在第i个表和第j个表之间存在连接关系,否则为0;然后,将矩阵M的所有行放入到一个一维向量中,将该矩阵展平为向量v,其中,Mi,j=vi*n+j;之后,在向量v上应用一个全连接层(Fully Connect FC)来获得Query的向量表示形式:R(q)=FC(V)=σ(vW+b);其中σ是一个激活函数,W是全连接层全换矩阵,b是偏置系数;
(2)表中列的编码:连接操作分为三种情况:=,>和<;因此,将列c编码为长度为4的特征向量:其中,如果列c存在于连接谓词中,则/>否则对于其他三个选择操作需要把具体连接条件中的值也一并存入;由于不同列中的数据具有不同的度量,因此将值归一化,根据最大值和最小值把其它值压缩到[0,1]之间;
预测c=v时,如果v<Cmin或v>Cmax,则C==-1,其它情况下
预测c>v时,如果v≥Cmax则C>=1,如果v≤Cmmin则C>=0,其它情况下
预测c<v时,如果v≤Cmmin则C<=1,如果v≥Cmax则C<=0,其它情况
(3)表的编码:利用列的表示构造表的表示;假设一个表有k列,则最终R(t)=MaxPool(M(t))。
Step2.2、把SQL语句Query、表中列、表的编码向量传入Tree-LSTM+Attention网络中学习得到连接树的编码表示,从而获得最终状态的表示。
所述Step2.2具体包括:
(1)进行连接树的编码:为连接树构建了一个树模型;叶节点是表或列;连接树中的内部节点对应于一个连接,并由4个节点(α0,β0,β1,α1)组成;α0和α1是需要连接的两个连接树,即连接表),β0和β1是对应的这两个连接表中需要连接的两个列,利用N-ary Tree-LSTM进行编码;
对于树节点j,使用hj表示其表示形式,并使用mj表示存储单元。
如果节点j是代表单个表,则hj=R(j),mj将被初始化为零向量。
如果节点j是代表单个列,则hj=R(j),mj将被初始化为零向量。
对于表示联接的节点j,它具有4个子节点(αj,0,βj,0,βj,1,αj,1),N-ary Tree-LSTM中应用N-ary Unit对这四个子节点进行表示,以获得hj和mj
hj=oj⊙tanh(mj)
其中i,f,o,u是计算中的中间神经网络,LSTM网络的每个门与之相对应。每个连接树中根节点的hj可以看作是该连接树T的表示R(t),R(t)=hj
(2)进行最终状态表示State的编码:连接状态s由林F={T1,T2,...}和查询q组成。此处使用Child-Sum Tree-LSTM来获取根hroot的输出。
i=σ(Uih+bi)
o=σ(Uoh+bo)
u=tanh(Uuh+bu)
hroot=o⊙tanh(mroot)
其中i,f,o,u是计算中的中间神经网络,对应于传统LSTM网络中的每个门。hroot可以看做连接树的表示形式,即R(f)=hroot,结合之前的R(q)可以组合成最终状态State的表示:
(3)增加Attention层后,原树节点的表示hj需要进一步的加权计算;
ej=a(hj)
其中,a()为一个可学习的权重函数,连接树T的最终表示R(t)=C。LSTM+Attention网络的组成结构如图5所示。
本发明的有益效果是:
(1)本发明通过改变LSTM网络结构,使其能对就近中间值的特定的特征,进行重点学习,从而提高模型的准确度;本发明通过改变RTOS模型结构,提升模型的训练速度,减少模型的训练时间;
(2)因为加入了attention机制。使模型收敛速度更快,并使MRC和GMRL收敛到更小的一个值;
(3)加入多进程的异步训练后,模型的训练速度大大加快,使其能更快的结束训练,从而节省大量时间。
附图说明
图1为本发明中传统查询优化器架构;
图2为本发明模型中工作单元与中心单元连接方式总体结构;
图3为本发明模型总体结构;
图4为本发明中一个AST树生成的实例;
图5为本发明中LSTM+Attention网络结构图;
图6为本发明中DQN优化器训练中reward变化情况;
图7为本发明中代价估计训练时,各模型MRC计算结果;
图8为本发明中延时调整训练时,各模型GMRL计算结果。
具体实施方式
实施例1:如图1-图8所示,基于强化学习DQN算法的异步SQL连接查询优化方法,所述方法的具体步骤如下:
Step1、将SQL语句按照查询谓词进行解析分解,并用抽象语法树AST算法,把解析后的SQL存储为查询树的结构形式;
Step2、将AST树结构放入DRL网络中的DQN优化器中,进行连接动作的选择;每执行一次连接选择,把生成的包含新的一个表的连接树,传入Tree-LSTM+Attention网络中,经过编码和计算获得一个长期奖励信号,经过多次循环,最终生成一个Agent认为最优的包含所有表的连接顺序的查询树的状态表示State;
Step3、将最终状态表示State转换成一个实际的查询树,输入到现有的数据库管理系统的执行其中,进行代价估计和延迟时间计算;
Step4、将数据库管理系统执行的结果保存到记忆池中,使DQN优化器网络的agent从记忆池中进行反复的多轮次的训练;与此同时,需要把这一部分数据发送到中心单元(中心单元不做实际的模型训练工作,只有数据存储和数据共享同步的作用),实现中心单元数据的同步更新,实现数据的PUSH操作;
Step5、DQN优化器随机从记忆池中抽取样本,进行多轮次训练,一直到指定的训练轮次结束,从而得到一个能输出最优查询连接顺序的DRL网络;
Step6、利用训练好的DRL网络,对测试集SQL数据进行测试,,得到通过机器学习预测的连接查询最优化连接顺序的结果。
作为本发明的进一步方案,所述Step3数据库管理系统采用PostgreSQL数据库本身的数据库管理系统,进行代价估计时的代价模型为PostgreSQL原生自带的代价模型,延迟时间为数据库实际执行某条SQL语句所用的时间。
作为本发明的进一步方案,所述Step4中的中心单元利用了Python的多进程编程,实现多个工作单元同时训练,其中,一个工作单元占用一个CPU核心;同步更新数据时使用锁,用于保证多个工作单元同时更新数据时,中心单元数据的一致性。在Python中可以使用“multiprocessing.cpu_count()”这个命令来获取本台计算机CPU核心数。但是要保证在运行时Nworker<=NCPU。即工作中心的个数要小于等于CPU的核心数。
作为本发明的进一步方案,所述Step5中,多轮次训练是异步执行,所有工作单元之间用到的模型训练的参数都需要做同步操作,所以在每次随机抽样训练之前,都要从中心单元拉取当前最新的模型参数,实现数据的PULL操作,从而更新本地的工作单元中记忆池的数据和LSTM网络中的参数。
作为本发明的进一步方案,所述Step2中,所述Tree-LSTM+Attention网络是在Tree-LSTM网络的每层单元的输出后,增加一层注意力层;
所述Step2中,把生成的包含新的一个表的连接树,传入Tree-LSTM+Attention网络中时,把LSTM网络每层的原树节点的输出向量表示进行进一步的加权计算。
作为本发明的进一步方案,所述Step2包括如下步骤:
Step2.1、对DQN优化器网络输入参数进行向量编码,输入参数的向量编码包括:
(1)SQL语句Query的编码:令n为数据库中的表数,每个表具有从0到n-1的唯一标识符;令M为每个元素为0或1的n*n矩阵;Mi,j为1表示在第i个表和第j个表之间存在连接关系,否则为0;然后,将矩阵M的所有行放入到一个一维向量中,将该矩阵展平为向量v,其中,Mi,j=vi*n+j;之后,在向量v上应用一个全连接层(Fully Connect FC)来获得Query的向量表示形式:R(q)=FC(V)=σ(vW+b);其中σ是一个激活函数,W是全连接层全换矩阵,b是偏置系数;
(2)表中列的编码:连接操作分为三种情况:=,>和<;因此,将列c编码为长度为4的特征向量:其中,如果列c存在于连接谓词中,则/>否则/>对于其他三个选择操作需要把具体连接条件中的值也一并存入;由于不同列中的数据具有不同的度量,因此将值归一化,根据最大值和最小值把其它值压缩到[0,1]之间;
预测c=v时,如果v<Cmin或v>Cmax,则C==-1,其它情况下
预测c>v时,如果v≥Cmax则C>=1,如果v≤Cmin则C>=0,其它情况下
预测c<v时,如果v≤Cmmin则C<=1,如果v≥Cmax则C<=0,其它情况
(3)表的编码:利用列的表示构造表的表示;假设一个表有k列,则最终R(t)=MaxPool(M(t))。
Step2.2、把SQL语句Query、表中列、表的编码向量传入Tree-LSTM+Attention网络中学习得到连接树的编码表示,从而获得最终状态的表示。
作为本发明的进一步说明,强化学习DQN算法的过程可以为:
初始化记忆池D为一个样本N
把action-value的Q函数,用随机权重的θ值进行初始化
把action-value的函数,用权重θ-=θ进行初始化
For episode=1,M do
初始化序列s1={x1},并且预处理序列
For t=1.T do
如果一个随机值落在ε的区间内,随机选择action at
否则
在环境中执行动作at,并得到环境的回报rt和下一个网络的输入xt+1
根据st,at,xt+1计算st+1;st+1=st,at,xt+1;并且预计算
把存储到记忆池D中
从记忆池D中随机取出部分样本的
设置
反向传播更新网络梯度参数θ
每C轮训练,更新target action-value function网络的参数为当前action-value function的参数
End For
End For
为了说明本发明的效果,本发明做了如下实验:
实验中使用的数据集为Join Order Benchmark(JOB)。JOB是基于IMDB的真实数据集。它具有来自33个SQL模板的113个查询。它具有3.6GB的数据(添加索引后为11GB)和21个数据表。每个查询中的表连接数量为4-17。获取地址:https://github.com/gregrahn/join-order-benchmark。本实验所用CPU为intel-i78700k最大可用核心数为12。以下实验默认情况下,都使用最大核心数。为了方便描述,本发明模型命名此模型为ARJOS(synchronousReinforcement Learning for Join Order Selection)。
从图6中可以看到,随着训练episode(轮数)的增加,DQN环境的反馈reward也在不断的提高。这表明了,本发明的模型在训练过程中得到的正向反馈越来越大。模型在训练过程中也得到了好的学习,最终每次查询的连接次序选择都会趋向最优的那种情况。
针对多进程训练,本发明也比较了不同进程数下,模型训练的速度比。本发明以进程数为1
作为基准,规定其训练速度为1。表1为各进程数下的速度比。随着进程数的增加,训练速度会变快,但是由于多进程间数据需要同步,所以会出现进程“等待”的情况。导致速率比增加是非线性的。
表1为进程数下的模型训练速度比
进程数 | 1 | 4 | 8 | 12 |
速度比 | 1 | 3.8 | 7.4 | 10.3 |
对于PostgreSQL数据库,其在执行连接查询的时候,使用的方式为动态规划DP(Dynamic Programming)。本实验,以DP为基准,计算其他模型对于DP的相对性能。从而验证本模型具有更高更好的性能。在实验中本发明把JOB数据集的113个SQL进行随机分配,9/10为训练数据集,1/10为测试数据集。
在代价估计训练阶段,本发明以DP方法为基准。使用平均相对成本mean relativecost(MRC)作为评价标准。此值越小,表明性能越好。
图7显示了,在代价估计训练过程中MRC计算的结果。最终ARJOS和RTOS都可以收敛到和DP相同的值。这表示ARJOS可以和DQ具有一样好的性能。值得注意的是,在训练过程中ARJOS比RTOS更快的收敛到一个特别小的值。这说明ARJOS的收敛速度更快,ARJOS具有更好的性能。
表2为各模型以DP为基础的MRC计算结果
模型 | MRC |
ARJOS | 1.00 |
RTOS | 1.01 |
表2显示,ARJOS最终的MRC值小于RTOS的。
在延迟调整时,本发明依然以DP为基准。基于DRL的方法在延迟调整后比DP生成更好的计划,但是MRC不能很好的体现出本模型对于DP的相对性能比较。例如,给定两个查询,如果DRL方法生成的连接计划的实际执行时间是DP的两倍(2)和一半(0.5),则相对性能应为1,但是MRC的计算结果为:这不够准确。对于GMRL计算结果为:/>因此在延迟调整训练阶段,本发明使用几何平均相关延迟(geometric average basedGeometric Mean Relevant Latency)GMRL作为评价标准。此值越小表示性能越好。
图8显示了,在延迟调整训练过程中GMRL计算的结果。最终ARJOS和RTOS都可以收敛到比DP更低的值。这表示ARJOS比DQ具有更好的性能。值得注意的是,在训练过程中ARJOS比RTOS更快的收敛到一个特别小的值。(通常RTOS需要训练至少10小时以上,而ARJOS只需要3小时左右就可以得到一个很小GMRL值)这说明ARJOS的收敛速度更快,ARJOS具有更好的性能。
表3为各模型以DP为基础的GMRL计算结果
模型 | MRC |
ARJOS | 0.62 |
RTOS | 0.67 |
表3显示。ARJOS最终的GMRL值小于RTOS的。并且有着较大的提升。
本发明在Tree-LSTM网络的每层单元的输出后,增加一层注意力(Attention)层,把LSTM网络每层的输出向量再做加权计算。从而突出此隐藏层就近的左右隐藏层的传递的数据特征。因为加入了attention机制。使模型收敛速度更快,并使MRC和GMRL收敛到更小的一个值。
本发明利用Pvthon的多进程编程,同时构造多个DRL深度强化学习模块,共享模型训练数据,从而做到多训练模块异步执行。大大增加模型训练速度,使其能更快的结束训练,从而节省大量时间。
上面结合附图对本发明的具体实施方式作了详细说明,但是本发明并不限于上述实施方式,在本领域普通技术人员所具备的知识范围内,还可以在不脱离本发明宗旨的前提下作出各种变化。
Claims (5)
1.基于强化学习DQN算法的异步SQL连接查询优化方法,其特征在于:所述方法的具体步骤如下:
Step1、将SQL语句按照查询谓词进行解析分解,并用抽象语法树AST算法,把解析后的SQL存储为查询树的结构形式;
Step2、将AST树结构放入DRL网络中的DQN优化器中,进行连接动作的选择;每执行一次连接选择,把生成的包含新的一个表的连接树,传入Tree-LSTM+Attention网络中,经过编码和计算获得一个长期奖励信号,经过多次循环,最终生成一个Agent认为最优的包含所有表的连接顺序的查询树的状态表示State;
Step3、将最终状态表示State转换成一个实际的查询树,输入到现有的数据库管理系统的执行其中,进行代价估计和延迟时间计算;
Step4、将数据库管理系统执行的结果保存到记忆池中,使DQN优化器网络的agent从记忆池中进行反复的多轮次的训练;与此同时,需要把这一部分数据发送到中心单元,实现中心单元数据的同步更新,实现数据的PUSH操作;
Step5、DQN优化器随机从记忆池中抽取样本,进行多轮次训练,一直到指定的训练轮次结束,从而得到一个能输出最优查询连接顺序的DRL网络;
Step6、利用训练好的DRL网络,对测试集SQL数据进行测试,得到通过机器学习预测的连接查询最优化连接顺序的结果。
2.根据权利要求1所述的基于强化学习DQN算法的异步SQL连接查询优化方法,其特征在于:所述Step3数据库管理系统采用PostgreSQL数据库本身的数据库管理系统,进行代价估计时的代价模型为PostgreSQL原生自带的代价模型,延迟时间为数据库实际执行某条SQL语句所用的时间。
3.根据权利要求1所述的基于强化学习DQN算法的异步SQL连接查询优化方法,其特征在于:所述Step4中的中心单元利用了Python的多进程编程,实现多个工作单元同时训练,其中,一个工作单元占用一个CPU核心;同步更新数据时使用锁,用于保证多个工作单元同时更新数据时,中心单元数据的一致性。
4.根据权利要求1所述的基于强化学习DQN算法的异步SQL连接查询优化方法,其特征在于:所述Step5中,多轮次训练是异步执行,所有工作单元之间用到的模型训练的参数都需要做同步操作,所以在每次随机抽样训练之前,都要从中心单元拉取当前最新的模型参数,实现数据的PULL操作,从而更新本地的工作单元中记忆池的数据和LSTM网络中的参数。
5.根据权利要求1所述的基于强化学习DQN算法的异步SQL连接查询优化方法,其特征在于:所述Step2中,所述Tree-LSTM+Attention网络是在Tree-LSTM网络的每层单元的输出后,增加一层注意力层;
所述Step2中,把生成的包含新的一个表的连接树,传入Tree-LSTM+Attention网络中时,把LSTM网络每层的原树节点的输出向量表示进行进一步的加权计算。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111219371.5A CN113836174B (zh) | 2021-10-20 | 2021-10-20 | 基于强化学习dqn算法的异步sql连接查询优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202111219371.5A CN113836174B (zh) | 2021-10-20 | 2021-10-20 | 基于强化学习dqn算法的异步sql连接查询优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113836174A CN113836174A (zh) | 2021-12-24 |
CN113836174B true CN113836174B (zh) | 2024-01-23 |
Family
ID=78965401
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202111219371.5A Active CN113836174B (zh) | 2021-10-20 | 2021-10-20 | 基于强化学习dqn算法的异步sql连接查询优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113836174B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN115168408B (zh) * | 2022-08-16 | 2024-05-28 | 北京永洪商智科技有限公司 | 基于强化学习的查询优化方法、装置、设备及存储介质 |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107463702A (zh) * | 2017-08-16 | 2017-12-12 | 中科院成都信息技术股份有限公司 | 一种基于进化算法的数据库多连接查询优化方法 |
CN108388666A (zh) * | 2018-03-16 | 2018-08-10 | 重庆邮电大学 | 一种基于萤火虫算法的数据库多表连接查询优化方法 |
WO2021139753A1 (zh) * | 2020-01-10 | 2021-07-15 | 华为技术有限公司 | 一种数据库的处理方法和装置 |
CN113407532A (zh) * | 2021-05-25 | 2021-09-17 | 南京逸智网络空间技术创新研究院有限公司 | Spark SQL多表连接优化方法、装置、计算机设备和存储介质 |
-
2021
- 2021-10-20 CN CN202111219371.5A patent/CN113836174B/zh active Active
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107463702A (zh) * | 2017-08-16 | 2017-12-12 | 中科院成都信息技术股份有限公司 | 一种基于进化算法的数据库多连接查询优化方法 |
CN108388666A (zh) * | 2018-03-16 | 2018-08-10 | 重庆邮电大学 | 一种基于萤火虫算法的数据库多表连接查询优化方法 |
WO2021139753A1 (zh) * | 2020-01-10 | 2021-07-15 | 华为技术有限公司 | 一种数据库的处理方法和装置 |
CN113407532A (zh) * | 2021-05-25 | 2021-09-17 | 南京逸智网络空间技术创新研究院有限公司 | Spark SQL多表连接优化方法、装置、计算机设备和存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113836174A (zh) | 2021-12-24 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
Yu et al. | Reinforcement learning with tree-lstm for join order selection | |
Marcus et al. | Plan-structured deep neural network models for query performance prediction | |
Huang et al. | Gamepad: A learning environment for theorem proving | |
Beyer et al. | How to analyse evolutionary algorithms | |
US20210232376A1 (en) | Vectorized representation method of software source code | |
WO2021190597A1 (zh) | 一种神经网络模型的处理方法以及相关设备 | |
CN113111058B (zh) | 一种数据库的处理方法和装置 | |
Wang et al. | Benchmarking the combinatorial generalizability of complex query answering on knowledge graphs | |
CN115617830A (zh) | 一种基于机器学习的数据查询优化处理方法及装置 | |
CN114911844B (zh) | 基于机器学习的近似查询优化系统 | |
CN113836174B (zh) | 基于强化学习dqn算法的异步sql连接查询优化方法 | |
CN114463596A (zh) | 一种超图神经网络的小样本图像识别方法、装置及设备 | |
CN114116778A (zh) | 一种数据库查询优化方法 | |
Welborn et al. | Learning index selection with structured action spaces | |
Park et al. | BlinkML: Approximate machine learning with probabilistic guarantees | |
CN115599918B (zh) | 一种基于图增强的互学习文本分类方法及系统 | |
CN117171354A (zh) | 用于回答医疗知识图谱复杂查询的递归路径查询编码方法 | |
CN111444316A (zh) | 一种面向知识图谱问答的复合问句解析方法 | |
Fang et al. | A query-level distributed database tuning system with machine learning | |
WO2021248319A1 (en) | Database management system and method for graph view selection for relational-graph database | |
CN113051353A (zh) | 一种基于注意力机制的知识图谱路径可达性预测方法 | |
CN113407532A (zh) | Spark SQL多表连接优化方法、装置、计算机设备和存储介质 | |
Kholod et al. | Decomposition of data mining algorithms into unified functional blocks | |
CN112650770B (zh) | 基于query workload分析的MySQL参数推荐方法 | |
Yuan et al. | Convergency of genetic regression in data mining based on gene expression programming and optimized solution |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |