CN103678621A - 基于常量替换的sql语句优化方法 - Google Patents
基于常量替换的sql语句优化方法 Download PDFInfo
- Publication number
- CN103678621A CN103678621A CN201310698509.3A CN201310698509A CN103678621A CN 103678621 A CN103678621 A CN 103678621A CN 201310698509 A CN201310698509 A CN 201310698509A CN 103678621 A CN103678621 A CN 103678621A
- Authority
- CN
- China
- Prior art keywords
- constant
- expression formula
- replacement
- node
- sql statement
- 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.)
- Granted
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/24—Querying
- G06F16/245—Query processing
- G06F16/2453—Query optimisation
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Computational Linguistics (AREA)
- Data Mining & Analysis (AREA)
- Databases & Information Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明公开了一种基于常量替换的SQL语句优化方法,包括步骤:S1:根据目标SQL语句中的WHERE子句中的布尔表达式创建一替换链表;S2:遍历所述替换链表,搜索一驱动表达式,所述驱动表达式为一个等值表达式,等值条件的一边为列,另一边为常量;如搜索到所述驱动表达式则继续下一步骤,否则结束步骤;S3:根据当前所述驱动表达式对所述目标SQL语句进行常量替换,调整所述替换链表并标记当前所述驱动表达式;S4:继续搜索下一驱动表达式,如搜索到所述驱动表达式则返回步骤S3,否则结束步骤。由于采用了本发明的一种基于常量替换的SQL语句优化方法,具有优化度高,大幅提高系统性能的优点。
Description
技术领域
本发明涉及一种SQL语句优化方法,尤其涉及一种基于常量替换的SQL语句优化方法。
背景技术
当今社会,一切皆数字化。随着大数据时代的到来,数据库经常需要在海量数据中,选出满足特定需求的数据来完成查询操作。SQL语句通常使用WHERE子句来选择需要操作的数据。
一般而言,选择一个表的数据,使用单表选择操作的性能要远远好于多表连接的性能。如果优化器可以从语义上将WHERE子句中的多表连接转换为单表选择操作,执行器便会显著减少运行时间,大大提高系统的整体性能;另外,非相关查询的性能也要远好于相关查询的性能,如果优化器可以从语义上有效的去除子查询的相关性,更能大幅提高系统的性能。
因此,减少多表连接和消除相关性是SQL语句优化的一个重要课题。目前公开的数据库查询优化技术都未能实现通过最大程度的常量替换来减少多表连接和消除相关性。
发明内容
本发明的目的在于克服现有技术的缺陷,而提供一种基于常量替换的SQL语句优化方法,具有结构简单、抗干扰能力强的优点。
本发明所解决的技术问题采用以下技术方案来实现:
本发明所提供的一种基于常量替换的SQL语句优化方法,包括步骤:
S1:根据目标SQL语句中的WHERE子句中的布尔表达式创建一替换链表;
S2:遍历所述替换链表,搜索一驱动表达式,所述驱动表达式为一个等值表达式,等值条件的一边为列,另一边为常量;如搜索到所述驱动表达式则继续下一步骤,否则结束步骤;
S3:根据当前所述驱动表达式对所述目标SQL语句进行常量替换,调整所述替换链表并标记当前所述驱动表达式;
S4:继续搜索下一驱动表达式,如搜索到所述驱动表达式则返回步骤S3,否则结束步骤。
本发明的进一步改进在于,所述S1步骤进一步包括步骤:
根据所述WHERE子句创建一棵二叉树,所述二叉树的叶结点是所述WHERE子句中的简单布尔表达式,所述二叉树的内结点是AND结点或OR结点;当所述WHERE子句中只有一个简单布尔表达式时,构建的所述二叉树只有一个结点,且所述结点为所述简单布尔表达式;
中根遍历所述二叉树,将所述二叉树的所有叶结点放入链表中,构成所述替换链表。
本发明的进一步改进在于,所述S3步骤进一步包括步骤:
根据所述二叉树获取当前所述驱动表达式的替换范围;
在所述替换范围内获取当前所述驱动表达式的常量替换布尔表达式的第一集合,所述常量替换布尔表达式为包含了当前所述驱动表达式的列的布尔表达式;
将所述第一集合内的每一常量替换布尔表达式中包括的当前所述驱动表达式的列替换为当前所述驱动表达式中的常量;
将替换后的常量替换布尔表达式的位置调整到所述替换链表末尾;
标记当前所述驱动表达式;
如所述第一集合为空集,则只标记当前所述驱动表达式。
本发明的进一步改进在于,所述根据所述二叉树获取当前所述驱动表达式的替换范围步骤进一步包括步骤:
在所述二叉树中获取一根结点到当前所述驱动表达式为叶结点的路径中无OR结点且高度最大的子树;
获取所述子树的所有叶结点构成一第二集合,所述第二集合为当前所述驱动表达式的替换范围。
本发明的进一步改进在于,在所述S3步骤中,如所述替换范围内包括含有相关子查询的布尔表达式,则在所述将替换后的常量替换布尔表达式的位置调整到所述替换链表末尾步骤前,还包括步骤:
将所述相关子查询项内的常量替换列替换为当前所述驱动表达式的常量;所述常量替换列为包含当前所述驱动表达式的列的表达式。
本发明的进一步改进在于,所述相关子查询项包括子查询中的查询项SELECT_ITEM、排序项ORDER_BY_ITEM、WHERE子句和集函数。
本发明的进一步改进在于,所述S3步骤之前且所述S1步骤之后还包括步骤:
设置所述二叉树每一结点的层次值,进一步包括步骤:
将所述二叉树的根结点的层次值设为1;
将每一所述AND结点的层次值设置为与其父结点相同;
将每一所述OR结点的层次值设置为其父结点的层次值加1;
将每一所述叶结点的层次值设置为与其父结点相同。
本发明的进一步改进在于,在所述S3步骤中,在所述将替换后的常量替换布尔表达式的位置调整到所述替换链表末尾步骤前,还包括步骤:
如果所述目标SQL语句含有相关查询项,且当前所述驱动表达式在所述二叉树中的层次值为1,则将所述相关查询项内的常量替换列替换为当前所述驱动表达式的常量。
本发明的进一步改进在于,所述相关查询项包括所述SQL语句中,WHERE子句对应的查询项SELECT_ITEM和排序项ORDER_BY_ITEM。
本发明由于采用了以上技术方案,使其具有以下有益效果:
将第一集合内的每一常量替换布尔表达式中包括的当前驱动表达式的列替换为当前驱动表达式中的常量,以消除多表的连接条件,将多表连接转换为多个表各自的单表选择操作。将替换后的常量替换布尔表达式移动至替换链表的末尾,保证替换后的常量替换布尔表达式能够在搜索驱动表达式时被遍历到。将相关子查询项内的常量替换列替换为当前驱动表达式的常量,消除了子查询的相关性。
附图说明
图1为本发明基于常量替换的SQL语句优化方法的流程图;
图2为本发明实施例一的WHERE子句转换后的二叉树结构示意图;
图3为本发明实施例一的二叉树各结点的层次值示意图;
图4为本发明实施例一的常量替换过程示意图。
具体实施方式
下面结合具体实施例对本发明作进一步说明。
请参阅图1,本发明的一种基于常量替换的SQL语句优化方法,包括步骤:
S1:根据目标SQL语句中的WHERE子句中的布尔表达式创建一替换链表;
S2:遍历替换链表,搜索一驱动表达式,驱动表达式为一个等值表达式,等值条件的一边为列,另一边为常量;如搜索到驱动表达式则继续下一步骤,否则结束步骤;
S3:根据当前驱动表达式对目标SQL语句进行常量替换,调整替换链表并标记当前驱动表达式;
S4:继续搜索下一驱动表达式,如搜索到驱动表达式则返回步骤S3,否则结束步骤。
其中,S1步骤进一步包括步骤:
根据WHERE子句创建一棵二叉树,二叉树的叶结点是WHERE子句中的简单布尔表达式,二叉树的内结点是AND结点或OR结点;当WHERE子句中只有一个简单布尔表达式时,构建的二叉树只有一个结点,且结点为简单布尔表达式;
中根遍历二叉树,将二叉树的所有叶结点放入链表中,构成替换链表。
S3步骤进一步包括步骤:
根据二叉树获取当前驱动表达式的替换范围;
在替换范围内获取当前驱动表达式的常量替换布尔表达式的第一集合,常量替换布尔表达式为包含了当前驱动表达式的列的布尔表达式;
将第一集合内的每一常量替换布尔表达式中包括的当前驱动表达式的列替换为当前驱动表达式中的常量;
将替换后的常量替换布尔表达式的位置调整到替换链表末尾;
标记当前驱动表达式;
如第一集合为空集,则只标记当前驱动表达式。
其中,根据二叉树获取当前驱动表达式的替换范围步骤进一步包括步骤:
在二叉树中获取一根结点到当前驱动表达式为叶结点的路径中无OR结点且高度最大的子树;
获取子树的所有叶结点构成一第二集合,第二集合为当前驱动表达式的替换范围。
另外,在S3步骤中,如替换范围内包括含有相关子查询的布尔表达式,则在将替换后的常量替换布尔表达式的位置调整到替换链表末尾步骤前,还包括步骤:
将相关子查询项内的常量替换列替换为当前驱动表达式的常量;常量替换列为包含当前驱动表达式的列的表达式。
相关子查询项包括WHERE子句中对应的查询项SELECT_ITEM、排序项ORDER_BY_ITEM、WHERE子句和集函数。
在S3步骤之前且S1步骤之后还包括步骤:
设置二叉树每一结点的层次值,进一步包括步骤:
将二叉树的根结点的层次值设为1;
将每一AND结点的层次值设置为与其父结点相同;
将每一OR结点的层次值设置为其父结点的层次值加1;
将每一叶结点的层次值设置为与其父结点相同。
在S3步骤中,在将替换后的常量替换布尔表达式的位置调整到替换链表末尾步骤前,如果目标SQL语句含有相关查询项,且当前驱动表达式在二叉树中的层次值为1,则将相关查询项内的常量替换列替换为当前驱动表达式的常量。
相关查询项包括SQL语句中对应的查询项SELECT_ITEM和排序项ORDER_BY_ITEM。
请参见图2-4,例如,基于ta、tb、tc、td、te五张表:
(1)ta(c1int,c2int,c5int,c6int,c7int,c8int,c9int);
(2)tb(c1int,c2int,c4int);
(3)tc(c1int,c2int);
(4)td(c2int,c3int,c4int);
(5)te(c2int)。
假设输入的SQL语句为:
(a)select ta.c7+1,tb.c2,tc.c2,td.c2
(b)from ta,tb,tc,td
(c)where
(d)ta.c1=tb.c1and
(e)tb.c4=td.c4and
(f)tb.c1=1and
(g)(ta.c2=tc.c1+tb.c1or
(h)ta.c1=td.c3)or
(i)(ta.c5=1and
(j)ta.c6in(select ta.c5+1from te where te.c2=ta.c5))and
(k)(ta.c7=1and
(l)(ta.c8=2or
(m)ta.c9=3))
(n)order by ta.c7+1,tb.c2
整个语句中有三处需要被替换:1)查询项SELECT_ITEM。对应于a)。2)WHERE条件子句。WHERE子句中共有10个布尔表达式,分别对应于(d)-(m),其布尔表达式依次记为B1-B10,此时B1-B10的初始值为如下:
B1:ta.c1=tb.c1;
B2:tb.c4=td.c4;
B3:tb.c1=1;
B4:ta.c2=tc.c1+tb.c1;
B5:ta.c1=td.c3;
B6:ta.c5=1;
B7:ta.c6in(select ta.c5+1from te where te.c2=ta.c5);
B8:ta.c7=1;
B9:ta.c8=2;
B10:ta.c9=3。
3)排序项ORDER_BY_ITEM。对应于n)。
下面结合附图2-3对本发明具体实施方式做详细说明:
第一步,构造一个替换链表,具体步骤如下:
首先根据WHERE字句构造的二叉树,二叉树结构如图2所示,各叶子节点和图4中的各元素一一对应。
然后,根据将二叉树的根结点的层次值设为1;将每一AND结点的层次值设置为与其父结点相同;将每一OR结点的层次值设置为其父结点的层次值加1;将每一叶结点的层次值设置为与其父结点相同的原则,设置二叉树每一结点的层次值,此时二叉树各结点的层次值请参阅图3。
中根遍历此二叉树,将二叉树的所有叶结点放入链表中,构成替换链表,此时的替换链表请参阅图4-A1。
第二步,遍历替换链表,找到第一个驱动表达式B3。
第三步,在WHERE条件、查询项SELECT_ITEM和排序项ORDER_BY_ITEM内根据规则进行相关表达式的常量替换,对查找到的布尔表达式进行标记,调整替换链表,具体步骤如下:
替换链表中的第一个驱动表达式为B3(tb.c1=1),根据图2的二叉树,获得其常量替换范围为[B1、B2、B4、B5],在该替换范围内存在B3的常量替换布尔表达式集合[B1B4],将驱动表达式B3的常量替换布尔表达式B1、B4进行常量替换,获得B1(ta.c1=1)、B4(ta.c2=tc.c2+1),然后在替换链表中调整常量替换布尔表达式B1、B4的位置到链表的末尾,调整位置时按照原来的次序。同时,对驱动表达式B3做标记,不在其他驱动表达式的常量替换布尔表达式的集合内,调整后的结果如图4-A2所示,通过上述步骤消除了表ta与表tb的连接条件。
第四步,从标记的驱动表达式的下一个表达式开始,继续遍历调整后的替换链表,找出下一个驱动表达式,如果找到则重复第三、四步的操作,否则优化过程结束,具体步骤如下:
从标记的驱动表达式的下一个表达式开始,即从B5开始,继续遍历调整后的替换链表,找到下一个驱动表达式为B6。根据二叉树获得B6的常量替换范围为[B7],B6的常量替换布尔表达式集合为[B7],对B7进行常量替换,获得B7(ta.c6in(select1+1from te where te.c2=1)),然后调整B7在替换链表中的位置。同时,对驱动表达式B6做标记,结果如图4-A3所示,通过上述步骤消除了相关子查询中表ta与表te的相关性。
接着,从B8开始,继续遍历调整后的替换链表,找到下一个驱动表达式为B8,根据图2的二叉树,B8的常量替换范围为[B1、B2、B3、B4、B5、B6、B7、B9、B10],在该替换范围内没有常量替换布尔表达式;但参阅图3可知B8的层次值是1,因此可将SQL语句中的SELECT_ITEM项替换为(select1+1,tb.c2,tc.c2,td.c2),将SQL语句中的ORDER_BY_ITEM项替换为(1+1,tb.c2)。同时对B8做标记,此时替换后的结果如图4-A4所示,通过上述步骤,替换了SELECT_ITEM项和ORDER_BY_ITEM项中的列。
然后,从B9开始,继续遍历调整后的替换链表,找到下一个驱动表达式为B9,B9没有替换范围和常量替换布尔表达式,且B9所在层次值也不是1,所以没有替换和调整操作,只对B9做标记,此时替换后的结果如图4-A5所示。
之后,从B10开始,继续遍历调整后的替换链表,找到下一个驱动表达式为B10,B10同样没有替换范围和常量替换布尔表达式,所在层次值也不是1,所以没有替换和调整操作,只对B10做标记,此时替换后的结果如图4-A6所示。
再接着,从替换后的B1开始,继续遍历调整后的替换链表,找到下一个驱动表达式为替换后的B1,排除了已经作为驱动表达式的B3,常量替换范围为[B2、B4、B5],替换后的B1的替换布尔表达式为[B5],对B5进行常量替换为获得B5(td.c3=1),调整B5的位置。同时对B1做标记,替换后的结果如图4-A7所示,通过上述步骤消除了表ta与表td的连接条件。
然后,从替换后的B4开始,继续遍历调整后的链表,替换后的B4和B7都不是驱动表达式,B5虽然是驱动表达式,但是没有替换范围和常量替换布尔表达式。且由于B5所在层次值也不是1,所以没有替换和调整操作,只对B5做标记,替换后的结果如图4-A8所示。
此时,所有的布尔表达式都已处理完毕,优化结束。至此,完成了SQL语句的常量替换优化。
最终优化的结果为(select1+1,tb.c2,tc.c2,td.c2fromta,tb,tc,td where ta.c1=1and tb.c4=td.c4and tb.c1=1and(ta.c2=tc.c1+1or td.c3=1)or(ta.c5=1and ta.c6in(select1+1from te where te.c2=1))and(ta.c7=1and(ta.c8=2orta.c9=3))order by1+1,tb.c2)。
表1所示为各常量替换布尔表达式的替换操作,表2所示为驱动表达式的替换范围和常量替换布尔表达式集合。图3中,A2、A7将多表连接转换为多表的单表选择操作,A3消除了子查询的相关性,A4替换了WHERE子句对应的SELECT_ITEM项和ORDER_BY_ITEM项中的列。
表1
表2
以上结合附图实施例对本发明进行了详细说明,本领域中普通技术人员可根据上述说明对本发明做出种种变化例。因而,实施例中的某些细节不应构成对本发明的限定,本发明将以所附权利要求书界定的范围作为本发明的保护范围。
Claims (9)
1.一种基于常量替换的SQL语句优化方法,其特征在于,包括步骤:
S1:根据目标SQL语句中的WHERE子句中的布尔表达式创建一替换链表;
S2:遍历所述替换链表,搜索一驱动表达式,所述驱动表达式为一个等值表达式,等值条件的一边为列,另一边为常量;如搜索到所述驱动表达式则继续下一步骤,否则结束步骤;
S3:根据当前所述驱动表达式对所述目标SQL语句进行常量替换,调整所述替换链表并标记当前所述驱动表达式;
S4:继续搜索下一驱动表达式,如搜索到所述驱动表达式则返回步骤S3,否则结束步骤。
2.根据权利要求1所述的基于常量替换的SQL语句优化方法,其特征在于,所述S1步骤进一步包括步骤:
根据所述WHERE子句创建一棵二叉树,所述二叉树的叶结点是所述WHERE子句中的简单布尔表达式,所述二叉树的内结点是AND结点或OR结点;当所述WHERE子句中只有一个简单布尔表达式时,构建的所述二叉树只有一个结点,且所述结点为所述简单布尔表达式;
中根遍历所述二叉树,将所述二叉树的所有叶结点放入链表中,构成所述替换链表。
3.根据权利要求2所述的基于常量替换的SQL语句优化方法,其特征在于,所述S3步骤进一步包括步骤:
根据所述二叉树获取当前所述驱动表达式的替换范围;
在所述替换范围内获取当前所述驱动表达式的常量替换布尔表达式的第一集合,所述常量替换布尔表达式为包含了当前所述驱动表达式的列的布尔表达式;
将所述第一集合内的每一常量替换布尔表达式中包括的当前所述驱动表达式的列替换为当前所述驱动表达式中的常量;
将替换后的常量替换布尔表达式的位置调整到所述替换链表末尾;
标记当前所述驱动表达式;
如所述第一集合为空集,则只标记当前所述驱动表达式。
4.根据权利要求3所述的基于常量替换的SQL语句优化方法,其特征在于,所述根据所述二叉树获取当前所述驱动表达式的替换范围步骤进一步包括步骤:
在所述二叉树中获取一根结点到当前所述驱动表达式为叶结点的路径中无OR结点且高度最大的子树;
获取所述子树的所有叶结点构成一第二集合,所述第二集合为当前所述驱动表达式的替换范围。
5.根据权利要求3或4所述的基于常量替换的SQL语句优化方法,其特征在于,在所述S3步骤中,如所述替换范围内包括含有相关子查询的布尔表达式,则在所述将替换后的常量替换布尔表达式的位置调整到所述替换链表末尾步骤前,还包括步骤:
将所述相关子查询项内的常量替换列替换为当前所述驱动表达式的常量;所述常量替换列为包含当前所述驱动表达式的列的表达式。
6.根据权利要求5所述的基于常量替换的SQL语句优化方法,其特征在于,所述相关子查询项包括子查询中的查询项SELECT_ITEM、排序项ORDER_BY_ITEM、WHERE子句和集函数。
7.根据权利要求5所述的基于常量替换的SQL语句优化方法,其特征在于,所述S3步骤之前且所述S1步骤之后还包括步骤:
设置所述二叉树每一结点的层次值,进一步包括步骤:
将所述二叉树的根结点的层次值设为1;
将每一所述AND结点的层次值设置为与其父结点相同;
将每一所述OR结点的层次值设置为其父结点的层次值加1;
将每一所述叶结点的层次值设置为与其父结点相同。
8.根据权利要求7所述的基于常量替换的SQL语句优化方法,其特征在于,在所述S3步骤中,在所述将替换后的常量替换布尔表达式的位置调整到所述替换链表末尾步骤前,还包括步骤:
如果所述目标SQL语句含有相关查询项,且当前所述驱动表达式在所述二叉树中的层次值为1,则将所述相关查询项内的常量替换列替换为当前所述驱动表达式的常量。
9.根据权利要求8所述的基于常量替换的SQL语句优化方法,其特征在于,所述相关查询项包括所述SQL语句中,WHERE子句对应的查询项SELECT_ITEM和排序项ORDER_BY_ITEM。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310698509.3A CN103678621B (zh) | 2013-12-18 | 2013-12-18 | 基于常量替换的sql语句优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310698509.3A CN103678621B (zh) | 2013-12-18 | 2013-12-18 | 基于常量替换的sql语句优化方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN103678621A true CN103678621A (zh) | 2014-03-26 |
CN103678621B CN103678621B (zh) | 2016-08-17 |
Family
ID=50316166
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310698509.3A Active CN103678621B (zh) | 2013-12-18 | 2013-12-18 | 基于常量替换的sql语句优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN103678621B (zh) |
Cited By (12)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2016011904A1 (zh) * | 2014-07-23 | 2016-01-28 | 华为技术有限公司 | 数据库访问方法及装置、数据库系统 |
CN105740344A (zh) * | 2016-01-25 | 2016-07-06 | 中国科学院计算技术研究所 | 一种独立于数据库的sql语句合并方法及系统 |
CN107315790A (zh) * | 2017-06-14 | 2017-11-03 | 腾讯科技(深圳)有限公司 | 一种非相关子查询的优化方法和装置 |
CN107506365A (zh) * | 2017-06-26 | 2017-12-22 | 杭州沃趣科技股份有限公司 | 一种对输出列进行合并计算的方法 |
CN108304505A (zh) * | 2018-01-18 | 2018-07-20 | 上海达梦数据库有限公司 | 一种sql语句的处理方法、装置、服务器及存储介质 |
CN109145013A (zh) * | 2018-08-10 | 2019-01-04 | 上海达梦数据库有限公司 | 一种表达式转换方法、装置、设备及存储介质 |
CN110096514A (zh) * | 2019-04-01 | 2019-08-06 | 跬云(上海)信息科技有限公司 | 数据查询方法和装置 |
CN110555035A (zh) * | 2018-05-31 | 2019-12-10 | 阿里巴巴集团控股有限公司 | 一种对查询语句进行优化的方法、装置 |
CN110597850A (zh) * | 2019-08-20 | 2019-12-20 | 北京东方国信科技股份有限公司 | 一种提高数据库查询响应速度的常量优化方法 |
CN113157736A (zh) * | 2021-04-28 | 2021-07-23 | 联通沃音乐文化有限公司 | 分布式数据库中的查询计划优化方法及系统 |
WO2023060878A1 (zh) * | 2021-10-13 | 2023-04-20 | 苏州浪潮智能科技有限公司 | 一种数据查询方法、系统、异构加速平台及存储介质 |
CN116484822A (zh) * | 2023-06-26 | 2023-07-25 | 和创(北京)科技股份有限公司 | 表单字段表达式循环依赖计算方法及装置 |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101944084A (zh) * | 2009-07-09 | 2011-01-12 | 镇江华扬信息科技有限公司 | 一种基于sql脚本和ftp传输技术的数据库自动操作系统 |
CN102436443A (zh) * | 2010-09-29 | 2012-05-02 | 上海粱江通信系统股份有限公司 | 一种提升基于数据库业务系统处理性能的方法 |
CN102436474A (zh) * | 2011-09-29 | 2012-05-02 | 畅捷通信息技术股份有限公司 | Sql函数转换装置和sql函数转换方法 |
-
2013
- 2013-12-18 CN CN201310698509.3A patent/CN103678621B/zh active Active
Cited By (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10534771B2 (en) | 2014-07-23 | 2020-01-14 | Huawei Technologies Co., Ltd. | Database access method and apparatus, and database system |
CN105335403A (zh) * | 2014-07-23 | 2016-02-17 | 华为技术有限公司 | 数据库访问方法及装置、数据库系统 |
EP3173944A4 (en) * | 2014-07-23 | 2017-05-31 | Huawei Technologies Co. Ltd. | Database access method and apparatus and database system |
WO2016011904A1 (zh) * | 2014-07-23 | 2016-01-28 | 华为技术有限公司 | 数据库访问方法及装置、数据库系统 |
CN105740344A (zh) * | 2016-01-25 | 2016-07-06 | 中国科学院计算技术研究所 | 一种独立于数据库的sql语句合并方法及系统 |
CN107315790A (zh) * | 2017-06-14 | 2017-11-03 | 腾讯科技(深圳)有限公司 | 一种非相关子查询的优化方法和装置 |
WO2018228322A1 (zh) * | 2017-06-14 | 2018-12-20 | 腾讯科技(深圳)有限公司 | 一种非相关子查询的优化方法、装置和存储介质 |
US11269878B2 (en) | 2017-06-14 | 2022-03-08 | Tencent Technology (Shenzhen) Company Limited | Uncorrelated subquery optimization method and apparatus, and storage medium |
CN107315790B (zh) * | 2017-06-14 | 2021-07-06 | 腾讯科技(深圳)有限公司 | 一种非相关子查询的优化方法和装置 |
CN107506365A (zh) * | 2017-06-26 | 2017-12-22 | 杭州沃趣科技股份有限公司 | 一种对输出列进行合并计算的方法 |
CN107506365B (zh) * | 2017-06-26 | 2021-02-12 | 杭州沃趣科技股份有限公司 | 一种对输出列进行合并计算的方法 |
CN108304505A (zh) * | 2018-01-18 | 2018-07-20 | 上海达梦数据库有限公司 | 一种sql语句的处理方法、装置、服务器及存储介质 |
CN110555035A (zh) * | 2018-05-31 | 2019-12-10 | 阿里巴巴集团控股有限公司 | 一种对查询语句进行优化的方法、装置 |
CN109145013A (zh) * | 2018-08-10 | 2019-01-04 | 上海达梦数据库有限公司 | 一种表达式转换方法、装置、设备及存储介质 |
CN110096514A (zh) * | 2019-04-01 | 2019-08-06 | 跬云(上海)信息科技有限公司 | 数据查询方法和装置 |
CN110597850A (zh) * | 2019-08-20 | 2019-12-20 | 北京东方国信科技股份有限公司 | 一种提高数据库查询响应速度的常量优化方法 |
CN113157736A (zh) * | 2021-04-28 | 2021-07-23 | 联通沃音乐文化有限公司 | 分布式数据库中的查询计划优化方法及系统 |
CN113157736B (zh) * | 2021-04-28 | 2024-01-05 | 联通沃音乐文化有限公司 | 分布式数据库中的查询计划优化方法及系统 |
WO2023060878A1 (zh) * | 2021-10-13 | 2023-04-20 | 苏州浪潮智能科技有限公司 | 一种数据查询方法、系统、异构加速平台及存储介质 |
US11893011B1 (en) | 2021-10-13 | 2024-02-06 | Inspur Suzhou Intelligent Technology Co., Ltd. | Data query method and system, heterogeneous acceleration platform, and storage medium |
CN116484822A (zh) * | 2023-06-26 | 2023-07-25 | 和创(北京)科技股份有限公司 | 表单字段表达式循环依赖计算方法及装置 |
CN116484822B (zh) * | 2023-06-26 | 2023-09-01 | 和创(北京)科技股份有限公司 | 表单字段表达式循环依赖计算方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN103678621B (zh) | 2016-08-17 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN103678621A (zh) | 基于常量替换的sql语句优化方法 | |
US10025823B2 (en) | Techniques for evaluating query predicates during in-memory table scans | |
KR101432700B1 (ko) | 쿼리의 최적화를 위한 방법 | |
US8161001B2 (en) | Relational database page-level schema transformations | |
US9665572B2 (en) | Optimal data representation and auxiliary structures for in-memory database query processing | |
Gravano et al. | Using q-grams in a DBMS for approximate string processing | |
US10726010B2 (en) | Optimization technique of generalized disjunctive semi/anti join | |
CN107291807B (zh) | 一种基于图遍历的sparql查询优化方法 | |
US8396852B2 (en) | Evaluating execution plan changes after a wakeup threshold time | |
JP5906161B2 (ja) | シングルストリームの複数ウィンドウでのストリームデータ処理方法 | |
US20140310260A1 (en) | Using persistent data samples and query-time statistics for query optimization | |
US20140052713A1 (en) | Hardware implementation of the aggregation/group by operation: filter method | |
US20200394201A1 (en) | Automatic modeling method and classifier for olap data model | |
US9582540B2 (en) | Feedback mechanism providing row-level filtering earlier in a plan | |
CN102929878A (zh) | 一种数据库变更管理方法及装置 | |
US9727606B2 (en) | Hardware implementation of the filter/project operations | |
US9317556B2 (en) | Accelerating database queries containing bitmap-based conditions | |
JP2017539012A (ja) | SQL−on−Hadoopシステムにおける複数クエリ最適化 | |
CN104598517A (zh) | 基于普通数据库的树型结构表的存储与查询技术 | |
CN101158957A (zh) | 互联网热点主题相关性挖掘方法 | |
KR101255639B1 (ko) | 컬럼 기반 데이터베이스 시스템 및 데이터베이스 시스템의 조인 인덱스를 이용한 조인 처리 방법 | |
KR101955376B1 (ko) | 비공유 아키텍처 기반의 분산 스트림 처리 엔진에서 관계형 질의를 처리하는 방법, 이를 수행하기 위한 기록 매체 및 장치 | |
CN107291938A (zh) | 订单查询系统及方法 | |
Mishra et al. | A lightweight online framework for query progress indicators | |
Sun et al. | A partitioning framework for aggressive data skipping |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
C14 | Grant of patent or utility model | ||
GR01 | Patent grant |