CN106933929B - 调整数据表连接的方法和装置 - Google Patents

调整数据表连接的方法和装置 Download PDF

Info

Publication number
CN106933929B
CN106933929B CN201511032742.3A CN201511032742A CN106933929B CN 106933929 B CN106933929 B CN 106933929B CN 201511032742 A CN201511032742 A CN 201511032742A CN 106933929 B CN106933929 B CN 106933929B
Authority
CN
China
Prior art keywords
size information
database
data table
tree structure
node
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
Application number
CN201511032742.3A
Other languages
English (en)
Other versions
CN106933929A (zh
Inventor
洪超
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Beijing Gridsum Technology Co Ltd
Original Assignee
Beijing Gridsum Technology Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Beijing Gridsum Technology Co Ltd filed Critical Beijing Gridsum Technology Co Ltd
Priority to CN201511032742.3A priority Critical patent/CN106933929B/zh
Publication of CN106933929A publication Critical patent/CN106933929A/zh
Application granted granted Critical
Publication of CN106933929B publication Critical patent/CN106933929B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/28Databases characterised by their database models, e.g. relational or object models
    • G06F16/282Hierarchical databases, e.g. IMS, LDAP data stores or Lotus Notes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F16/00Information retrieval; Database structures therefor; File system structures therefor
    • G06F16/20Information retrieval; Database structures therefor; File system structures therefor of structured data, e.g. relational data
    • G06F16/24Querying
    • G06F16/245Query processing
    • G06F16/2455Query execution
    • G06F16/24553Query execution of query operations
    • G06F16/24558Binary matching operations
    • G06F16/2456Join operations

Landscapes

  • Engineering & Computer Science (AREA)
  • Databases & Information Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Data Mining & Analysis (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Computational Linguistics (AREA)
  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本发明公开了一种调整数据表连接的方法和装置。其中,该方法包括:根据预设的数据库指令生成与数据库指令相应的数据库语句;从目标数据库中获取具有关联关系的数据表的集合,其中,具有关联关系的数据表的集合中的任意一个数据表包括数据库语句使用的一个或多个信息;通过数据库语句解析工具解析数据库语句的树结构,获取具有关联关系的数据表的集合中每个数据表的大小信息;根据获取得到的具有关联关系的数据表的集合中每个数据表的大小信息,调整每个数据表在树结构中的位置,以调整数据表的连接关系。本发明解决了在数据库语句的执行过程中,由于数据库中的数据表的连接顺序不恰当导致的数据库语句执行效率低的技术问题。

Description

调整数据表连接的方法和装置
技术领域
本发明涉及数据库领域,具体而言,涉及一种调整数据表连接的方法和装置。
背景技术
在联机分析处理(On-LineAnalytical Processing,简称OLAP)的环境下,目前常用的查询引擎有Hive、Impala等结构化的带元数据的数据库。在这些数据库中,通常,将各类事件的数据记录在各个事实数据表中。例如,在“教学管理系统”中,教学管理数据库包含以下几个事实数据表:“教师”表、“课程”表、“成绩”表、“学生”表、“班级”表和“授课”表等,通过以上事实数据表可管理教学过程中学生、教师、课程等信息。当用户需要从多个角度、跨越多个数据表将数据关联以查找指标数据时,表的连接顺序会对查找的速度产生极大的影响,在现有技术中,由于各种数据库的实现方式不同,数据表的连接顺序对查询的效率的影响也不同,所以当数据表的连接顺序与执行数据库语句的工具的实现方式不符时,会导致数据库语句的执行效率较低。
针对现有技术中在数据库语句的执行过程中,由于数据库中的数据表的连接顺序不恰当导致的数据库语句执行效率低的问题,目前尚未提出有效的解决方案。
发明内容
本发明实施例提供了一种调整数据表连接的方法和装置,以至少解决在数据库语句的执行过程中,由于数据库中的数据表的连接顺序不恰当导致的数据库语句执行效率低的技术问题。
根据本发明实施例的一个方面,提供了一种调整数据表连接的方法,包括:根据预设的数据库指令生成与数据库指令相应的数据库语句;从目标数据库中获取具有关联关系的数据表的集合,其中,具有关联关系的数据表的集合中的任意一个数据表包括数据库语句使用的一个或多个信息;通过数据库语句解析工具解析数据库语句的树结构,获取具有关联关系的数据表的集合中每个数据表的大小信息;根据获取得到的具有关联关系的数据表的集合中每个数据表的大小信息,调整每个数据表在树结构中的位置,以调整数据表的连接关系。
根据本发明实施例的另一方面,还提供了一种调整数据表连接的装置,包括:第一生成模块,用于根据预设的数据库指令生成与数据库指令相应的数据库语句;第一获取模块,用于从目标数据库中获取具有关联关系的数据表的集合,其中,具有关联关系的数据表的集合中的任意一个数据表包括数据库语句使用的一个或多个信息;第二获取模块,用于通过数据库语句解析工具解析数据库语句的树结构,获取具有关联关系的数据表的集合中每个数据表的大小信息;调整模块,用于根据获取得到的具有关联关系的数据表的集合中每个数据表的大小信息,调整每个数据表在树结构中的位置,以调整数据表的连接关系。
在本发明实施例中,采用根据预设的数据库指令生成与数据库指令相应的数据库语句;从目标数据库中获取具有关联关系的数据表的集合的方式通过数据库语句解析工具解析数据库语句的树结构,获取具有关联关系的数据表的集合中每个数据表的大小信息;根据获取得到的具有关联关系的数据表的集合中每个数据表的大小信息,调整每个数据表在树结构中的位置,达到了调整数据表的连接关系的目的,从而实现了通过数据库语句解析工具解析数据库语言中包含的数据表得到的大小信息对数据表的连接顺序进行调整的技术效果,从而进一步实现了提高数据库语言的执行效率的技术效果,进而解决了在数据库语句的执行过程中,由于数据库中的数据表的连接顺序不恰当导致的数据库语句执行效率低的技术问题。
附图说明
此处所说明的附图用来提供对本发明的进一步理解,构成本申请的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1是根据本发明实施例的一种调整数据表连接的方法的流程图;
图2是根据本发明实施例的一种可选的数据库语句的树结构的示意图;
图3是根据本发明实施例的一种可选的调整数据表连接后的树结构的示意图;
图4是根据本发明实施例的一种可选的调整数据表连接后的树结构的示意图;
图5是根据本发明实施例的一种可选的调整数据表连接的装置的结构示意图;
图6是根据本发明实施例的一种可选的调整数据表连接的装置的结构示意图;
图7是根据本发明实施例的一种可选的调整数据表连接的装置的结构示意图;
图8是根据本发明实施例的一种可选的调整数据表连接的装置的结构示意图;以及
图9是根据本发明实施例的一种可选的调整数据表连接的装置的结构示意图。
具体实施方式
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
需要说明的是,本发明的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例能够以除了在这里图示或描述的那些以外的顺序实施。此外,术语“包括”和“具有”以及他们的任何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、产品或设备不必限于清楚地列出的那些步骤或单元,而是可包括没有清楚地列出的或对于这些过程、方法、产品或设备固有的其它步骤或单元。
首先,在对本申请实施例进行描述的过程中出现的部分名词或术语适用于如下解释:
数据表:是数据库最重要的组成部分之一,包含用户访问网页产生的所有数据信息,例如,用户访问网页产生的访问页面,访问时长,访问页面数等相关的数据信息。
树结构:是一种重要的非线性数据结构,直观地看,它是数据元素按分支关系组织起来的结构。
结点:表示树结构中的数据元素,在本申请中,结点表示按照树结构执行数据库语句时使用的数据表。
Impala-Shell:是大规模并行处理式数据库语句分析工具。
实施例一
根据本发明实施例,提供了一种调整数据表连接的方法实施例,需要说明的是,在附图的流程图示出的步骤可以在诸如一组计算机可执行指令的计算机系统中执行,并且,虽然在流程图中示出了逻辑顺序,但是在某些情况下,可以以不同于此处的顺序执行所示出或描述的步骤。
图1是根据本发明实施例的一种调整数据表连接的方法的流程图,如图1所示,该方法包括如下步骤:
步骤S102,根据预设的数据库指令生成与数据库指令相应的数据库语句。
具体的,在上述步骤S102中,预设的数据库指令可以是查找符合某一条件或多个条件的数据,与预设的数据库指令相应的数据库语句是根据数据库指令所包含的目的,生成的可以在数据库中运行,且能达到预设的数据库指令的目的的计算机语句。
步骤S104,从目标数据库中获取具有关联关系的数据表的集合,其中,具有关联关系的数据表的集合中的任意一个数据表包括数据库语句使用的一个或多个信息。
在执行数据库语句时,需要在相关表中查询多种不同的信息。当数据库语句中包含的多个查询信息没有在同一个数据表时,需要在多个数据表中进行查询,此时,这些数据表就具有一定的关联关系,例如,如表一和表二所示,表一是用户的基本信息表User_A,表一的从左到右四列分别表示用户的ID号,用户的用户名、用户的年龄以及用户的性别;表二是用户购物信息表User_B在用户的基本信息表,从左到右四列分别表示用户的ID号,用户的用户名、用户购买产品的货号以及用户购买产品的价格。当数据库语句要查找的数据时购买的产品价格超过500¥的用户时,单独查询表一或单独查询表二都不能得到完整的信息,因此需要将表一和表二连接起来,表一和表二可以将ID号作为连接的主键,形成一定的关联关系。
表一
ID USER AGE GENDER
1 A 25 FEMALE
2 B 32 MALE
3 C 29 FEMALE
表二
ID USER ART.NO PRICE
1 A 2015456789 597¥
2 B 2015214621 394¥
3 C 2015146597 861¥
步骤S106,通过数据库语句解析工具解析数据库语句的树结构,获取具有关联关系的数据表的集合中每个数据表的大小信息。
具体的,在上述步骤S106中,数据可以语句解析工具可以是Impala、Hive等常用的查询引擎。
步骤S108,根据获取得到的具有关联关系的数据表的集合中每个数据表的大小信息,调整每个数据表在树结构中的位置,以调整数据表的连接关系。
具体的,在上述步骤中,在数据库语句的树结构中,每个数据表和其他的数据表已经具有连接关系,但这种连接关系可能不是使的数据库语句执行效率最高的连接关系,为了提高数据库语句的执行效率,按照预设的数据表的大小的顺序对数据表进行调整,得到数据表的新的连接关系。
由上可知,本申请上述实施例采用根据预设的数据库指令生成与数据库指令相应的数据库语句;从目标数据库中获取具有关联关系的数据表的集合的方式通过数据库语句解析工具解析数据库语句的树结构,获取具有关联关系的数据表的集合中每个数据表的大小信息;根据获取得到的具有关联关系的数据表的集合中每个数据表的大小信息,调整每个数据表在树结构中的位置,达到了调整数据表的连接关系的目的,从而实现了通过数据库语句解析工具解析数据库语言中包含的数据表得到的大小信息对数据表的连接顺序进行调整的技术效果,从而进一步实现了提高数据库语言的执行效率的技术效果,进而解决了在数据库语句的执行过程中,由于数据库中的数据表的连接顺序不恰当导致的数据库语句执行效率低的技术问题。
可选的,在步骤S106中,通过数据库语句解析工具解析数据库语句的树结构,获取具有关联关系的数据表的集合中每个数据表的大小信息的步骤包括:
步骤S1061,将具有关联关系的数据表的集合输入至数据库语句解析工具中。
步骤S1063,通过执行预设的解析指令,生成解析数据库语句的解析结果,其中,解析结果包括每个数据表的大小信息。
具体的,在上述步骤中,采用数据库语句解析工具解析数据库语句时,能够得到数据库语言在执行过程中的多种信息,例如:数据库语言的执行顺序,数据表的大小信息等。
步骤S1065,从解析结果中提取每个数据表的大小信息。
由上可知,本申请上述实施例将具有关联关系的数据表的集合输入至数据库语句解析工具中,通过执行预设的解析指令,生成解析数据库语句的解析结果,其中,解析结果包括每个数据表的大小信息,从解析结果中提取每个数据表的大小信息。上述方案提供了获取就关联关系的数据表的集合中任意一个数据表的大小信息的方案,通过将数据表输入至数据库语句解析工具得到数据表的大小信息。
可选的,在上述步骤S108中,根据获取得到的具有关联关系的数据表的集合中每个数据表的大小信息,调整每个数据表在树结构中的位置,以调整数据表的连接关系的步骤包括:
步骤S1081,按照数据库语句的树结构遍历数据库语句的树结构中的每个结点的大小信息,其中,每个结点包括至少一个数据表。
步骤S1083,当先遍历的结点的大小信息大于后遍历的结点的大小信息时,交换先遍历的结点和后遍历的结点的位置。
由上可知,本申请上述实施例按照数据库语句的树结构遍历数据库语句的树结构中的每个结点的大小信息,当先遍历的结点的大小信息大于后遍历的结点的大小信息时,交换先遍历的结点和后遍历的结点的位置。通过上述方案能够得到信息树结构以及新的数据表的连接关系,从而能使得数据表能够根据预设的顺序连接,从而解决了在数据库语句的执行过程中,由于数据库中的数据表的连接顺序不恰当导致的数据库语句执行效率低的技术问题。
可选的,在上述步骤S1083中,当先遍历的结点的大小信息大于后遍历的结点的大小信息时,交换先遍历的结点和后遍历的结点的位置的步骤包括:
步骤S1085,当树结构中的父结点的大小信息大于树结构中该父结点的子结点的大小信息时,交换父结点和子结点的位置。
具体的,在上述步骤中,针对树结构中的结点而言,如果在这一结点上一层还存在其他节点,则与这一结点连接且位于这一结点上一层的结点是这一结点的父结点。当遍历每个数据表的大小信息后,判断得到存在父结点的大小信息大于子结点的大小信息时,更换父结点和子结点的位置,例如,结合图2所示,当数据库语言的树结构如图2所示时,当执行数据库语言时,遍历包括数据表的结点的顺序可以是A、B、D、H、I、E、C、F、G,当结点G的父结点C的大小信息大于结点G时,更换结点C和结点G的位置,得到如图3所示的数据表的连接关系,此时,执行新的数据库语句时,遍历包括数据表的结点的顺序可以是A、B、D、H、I、E、G、F、C。
步骤S1087,对于树结构中属于同一层的多个子结点,当位于左侧的子结点的大小信息大于位于左侧的子结点右侧的子结点的大小信息时,交换左侧的子结点和右侧的子结点的位置。
具体的,在上步骤中,结合图2所示,结点D、结点E、结点G和结点H是属于同一层的结点,作为一种可选的实施例,当遍历每个数据表的大小信息后,结点D的大小信息大于结点E的大小信息,将结点D和结点E交换位置,得到新的树结构,此时,执行新的数据库语句时,遍历包括数据表的结点的顺序可以是A、B、E、H、I、D、C、F、G。
值得注意的是,由于上述实施例在调整表的连接关系的过程中,更改的是结点D和结点E的位置,因此导致结点H的父节点由结点D更改为结点E。
由此可知,本申请上述实施例当树结构中的父结点的大小信息大于树结构中该父结点的子结点的大小信息时,交换父结点和子结点的位置,对于树结构中属于同一父结点的多个子结点,当位于左侧的子结点的大小信息大于位于该左侧的子结点右侧的子结点的大小信息时,交换左侧的子结点和右侧的子结点的位置。上述方案提供了获得树结构中的各个结点包括的数据表的大小信后,将结点的位置进行调整的方法,使得执行通过新的树结构生成的数据库语言时具有较高的效率,实现了通过调整数据表的连接关系的方法提高执行数据库语句的效率的技术效果,从而能解决了在数据库语句的执行过程中,由于数据库中的数据表的连接顺序不恰当导致的数据库语句执行效率低的技术问题。
可选的,在上述步骤S108之后,即在根据获取得到的具有关联关系的数据表的集合中每个数据表的大小信息,调整每个数据表在树结构中的位置,以调整数据表的连接关系之后,上述方法还包括:
步骤S1089,根据调整后的树结构生成新数据库语句。
具体的,在上述步骤中,经过对具有关联关系的数据表集合中的数据表的在树结构中的位置进行调整后,数据表的连接关系也发生了改变,也就是说,按照调整后的树结构生成数据库语句后,执行新的数据库语句时,按照数据表新的连接关系执行。
步骤S10811,输出生成的新数据库语句。
具体的,在上述步骤中,输出生成的新数据库语句用于执行。
由上可知,本申请上述实施例提供的方案根据调整后的树结构生成新数据库语句,输出生成的新数据库语句,使得可以使用新的数据库语句执行预设的数据库指令,从而能提高实现数据库指令的目的的效率。
实施例二
图5是根据本发明实施例的一种可选的调整数据表连接的装置的结构示意图。出于描述的目的,所绘的体系结构仅为合适环境的一个示例,并非对本申请的使用范围或功能提出任何局限。也不应该将调整数据表连接的装置视为对图5所示的任一组件或组合具有任何依赖或需求。
如图5所示,该调整数据表连接的装置可以包括:第一生成模块50、第一获取模块52、第二获取模块54和调整模块56,其中:
第一生成模块50,用于根据预设的数据库指令生成与数据库指令相应的数据库语句。
具体的,在上述装置中,预设的数据库指令可以是查找符合某一条件或多个条件的数据,与预设的数据库指令相应的数据库语句是根据数据库指令所包含的目的,生成的可以在数据库中运行,且能达到预设的数据库指令的目的的计算机语句。
第一获取模块52,用于从目标数据库中获取具有关联关系的数据表的集合,其中,具有关联关系的数据表的集合中的任意一个数据表包括数据库语句使用的一个或多个信息。
第二获取模块54,用于通过数据库语句解析工具解析数据库语句的树结构,获取具有关联关系的数据表的集合中每个数据表的大小信息。
具体的,在上述装置中,数据可以语句解析工具可以是Impala、Hive等常用的查询引擎。
调整模块56,用于根据获取得到的具有关联关系的数据表的集合中每个数据表的大小信息,调整每个数据表在树结构中的位置,以调整数据表的连接关系。
由上可知,本申请上述实施例采用第一生成模块根据预设的数据库指令生成与数据库指令相应的数据库语句;采用第一获取模块从目标数据库中获取具有关联关系的数据表的集合的方式通过数据库语句解析工具解析数据库语句的树结构,采用第二获取模块获取具有关联关系的数据表的集合中每个数据表的大小信息;根据获取得到的具有关联关系的数据表的集合中每个数据表的大小信息,通过调整模块调整每个数据表在树结构中的位置,达到了调整数据表的连接关系的目的,从而实现了通过数据库语句解析工具解析数据库语言中包含的数据表得到的大小信息对数据表的连接顺序进行调整的技术效果,从而进一步实现了提高数据库语言的执行效率的技术效果,进而解决了在数据库语句的执行过程中,由于数据库中的数据表的连接顺序不恰当导致的数据库语句执行效率低的技术问题。
可选的,结合图6所示,在本申请提出的上述装置中,上述第二获取模块54包括:
输入模块60,用于将具有关联关系的数据表的集合输入至数据库语句解析工具中。
第二生成模块62,用于通过执行预设的解析指令,生成解析数据库语句的解析结果,其中,解析结果包括每个数据表的大小信息。
提取模块,用于从解析结果中提取每个数据表的大小信息。
由上可知,本申请上述实施例通过输入模块将具有关联关系的数据表的集合输入至数据库语句解析工具中,通过执行预设的解析指令,采用第二生成模块生成解析数据库语句的解析结果,其中,解析结果包括每个数据表的大小信息,采用提取模块从解析结果中提取每个数据表的大小信息。上述方案提供了获取就关联关系的数据表的集合中任意一个数据表的大小信息的方案,通过将数据表输入至数据库语句解析工具得到数据表的大小信息。
可选的,结合图7所示,在本申请提出的上述装置中,上述调整模块56包括:
遍历模块70,用于按照数据库语句的树结构遍历数据库语句的树结构中的每个结点的大小信息,其中,每个结点包括至少一个数据表。
第一交换模块72,用于当先遍历的结点的大小信息大于后遍历的结点的大小信息时,交换先遍历的结点和后遍历的结点的位置。
由上可知,本申请上述实施例按照数据库语句的树结构采用遍历模块遍历数据库语句的树结构中的每个结点的大小信息,当先遍历的结点的大小信息大于后遍历的结点的大小信息时,通过第一交换模块交换先遍历的结点和后遍历的结点的位置。通过上述方案能够得到信息树结构以及新的数据表的连接关系,从而能使得数据表能够根据预设的顺序连接,从而解决了在数据库语句的执行过程中,由于数据库中的数据表的连接顺序不恰当导致的数据库语句执行效率低的技术问题。
可选的,结合图8所示,在本申请提出的上述装置中,上述第一交换模块72包括:
第二交换模块80,用于当树结构中的父结点的大小信息大于树结构中该父结点的子结点的大小信息时,交换父结点和子结点的位置。
第三交换模块82,用于对于树结构中属于同一层的多个子结点,当位于左侧的子结点的大小信息大于位于左侧的子结点右侧的子结点的大小信息时,交换左侧的子结点和右侧的子结点的位置。
由此可知,本申请上述实施例当树结构中的父结点的大小信息大于树结构中的子结点的大小信息时,通过第二交换模块交换父结点和子结点的位置,对于树结构中属于同一父结点的多个子结点,当位于左侧的子结点的大小信息大于位于该左侧的子结点右侧的子结点的大小信息时,通过第三交换模块交换左侧的子结点和右侧的子结点的位置。上述装置提供了获得树结构中的各个结点包括的数据表的大小信后,将结点的位置进行调整的装置,使得执行通过新的树结构生成的数据库语言时具有较高的效率,实现了通过调整数据表的连接关系的装置提高执行数据库语句的效率的技术效果,从而能解决了在数据库语句的执行过程中,由于数据库中的数据表的连接顺序不恰当导致的数据库语句执行效率低的技术问题。
可选的,结合图9所示,在本申请提出的上述装置中,上述装置还包括:
第二生成模块90,用于根据调整后的树结构生成新数据库语句。
输出模块92,用于输出生成的新数据库语句。
由上可知,本申请上述实施例提供的装置根据调整后的树结构通过第二生成模块生成新数据库语句,通过输出模块输出生成的新数据库语句,使得可以使用新的数据库语句执行预设的数据库指令,从而能提高实现数据库指令的目的的效率。
所述调整数据表连接的装置包括处理器和存储器,上述第一生成模块、第一获取模块、第二获取模块和第二获取模块等均作为程序单元存储在存储器中,由处理器执行存储在存储器中的上述程序模块来实现相应的功能。
处理器中包含内核,由内核去存储器中调取相应的程序单元。内核可以设置一个或以上,通过调整内核参数调整数据表连接。
存储器可能包括计算机可读介质中的非永久性存储器,随机存取存储器(RAM)和/或非易失性内存等形式,如只读存储器(ROM)或闪存(flash RAM),存储器包括至少一个存储芯片。
本申请还提供了一种计算机程序产品的实施例,当在数据处理设备上执行时,适于执行初始化有如下方法步骤的程序代码:根据预设的数据库指令生成与数据库指令相应的数据库语句;从目标数据库中获取具有关联关系的数据表的集合,其中,具有关联关系的数据表的集合中的任意一个数据表包括数据库语句使用的一个或多个信息;通过数据库语句解析工具解析数据库语句的树结构,获取具有关联关系的数据表的集合中每个数据表的大小信息;根据获取得到的具有关联关系的数据表的集合中每个数据表的大小信息,调整每个数据表在树结构中的位置,以调整数据表的连接关系。
上述本发明实施例序号仅仅为了描述,不代表实施例的优劣。
在本发明的上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。在本申请所提供的几个实施例中,应该理解到,所揭露的技术内容,可通过其它的方式实现。其中,以上所描述的装置实施例仅仅是示意性的,例如所述单元的划分,可以为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,单元或模块的间接耦合或通信连接,可以是电性或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、只读存储器(ROM,Read-OnlyMemory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述仅是本发明的优选实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

Claims (10)

1.一种调整数据表连接的方法,其特征在于,包括:
根据预设的数据库指令生成与所述数据库指令相应的数据库语句;
从目标数据库中获取具有关联关系的数据表的集合,其中,所述具有关联关系的数据表的集合中的任意一个数据表包括所述数据库语句使用的一个或多个信息;
通过数据库语句解析工具解析所述数据库语句的树结构,获取所述具有关联关系的数据表的集合中每个数据表的大小信息;
根据获取得到的所述具有关联关系的数据表的集合中每个数据表的大小信息,调整所述每个数据表在所述树结构中的位置,以调整所述数据表的连接关系。
2.根据权利要求1所述的方法,其特征在于,通过数据库语句解析工具解析所述数据库语句的树结构,获取所述具有关联关系的数据表的集合中每个数据表的大小信息,包括:
将所述具有关联关系的数据表的集合输入至所述数据库语句解析工具中;
通过执行预设的解析指令,生成解析所述数据库语句的解析结果,其中,所述解析结果包括所述每个数据表的大小信息;
从所述解析结果中提取所述每个数据表的大小信息。
3.根据权利要求1或2所述的方法,其特征在于,根据获取得到的所述具有关联关系的数据表的集合中每个数据表的大小信息,调整所述每个数据表在所述树结构中的位置,以调整所述数据表的连接关系,包括:
按照所述数据库语句的树结构遍历所述数据库语句的树结构中的每个结点的大小信息,其中,所述每个结点包括至少一个数据表;
当先遍历的结点的大小信息大于后遍历的结点的大小信息时,交换所述先遍历的结点和所述后遍历的结点的位置。
4.根据权利要求3所述的方法,其特征在于,当先遍历的结点的大小信息大于后遍历的结点的大小信息时,交换所述先遍历的结点和所述后遍历的结点的位置,包括:
当所述树结构中的父结点的大小信息大于所述树结构中该父结点的子结点的大小信息时,交换所述父结点和所述子结点的位置;
对于所述树结构中属于同一层的多个子结点,当位于左侧的子结点的大小信息大于位于所述左侧的子结点右侧的子结点的大小信息时,交换所述左侧的子结点和所述右侧的子结点的位置。
5.根据权利要求1所述的方法,其特征在于,在根据获取得到的所述具有关联关系的数据表的集合中每个数据表的大小信息,调整所述每个数据表在所述树结构中的位置,以调整所述数据表的连接关系之后,所述方法还包括:
根据调整后的所述树结构生成新数据库语句;
输出生成的所述新数据库语句。
6.一种调整数据表连接的装置,其特征在于,包括:
第一生成模块,用于根据预设的数据库指令生成与所述数据库指令相应的数据库语句;
第一获取模块,用于从目标数据库中获取具有关联关系的数据表的集合,其中,所述具有关联关系的数据表的集合中的任意一个数据表包括所述数据库语句使用的一个或多个信息;
第二获取模块,用于通过数据库语句解析工具解析所述数据库语句的树结构,获取所述具有关联关系的数据表的集合中每个数据表的大小信息;
调整模块,用于根据获取得到的所述具有关联关系的数据表的集合中每个数据表的大小信息,调整所述每个数据表在所述树结构中的位置,以调整所述数据表的连接关系。
7.根据权利要求6所述的装置,其特征在于,所述第二获取模块包括:
输入模块,用于将所述具有关联关系的数据表的集合输入至所述数据库语句解析工具中;
第二生成模块,用于通过执行预设的解析指令,生成解析所述数据库语句的解析结果,其中,所述解析结果包括所述每个数据表的大小信息;
提取模块,用于从所述解析结果中提取所述每个数据表的大小信息。
8.根据权利要求6或7所述的装置,其特征在于,所述调整模块包括:
遍历模块,用于按照所述数据库语句的树结构遍历所述数据库语句的树结构中的每个结点的大小信息,其中,所述每个结点包括至少一个数据表;
第一交换模块,用于当先遍历的结点的大小信息大于后遍历的结点的大小信息时,交换所述先遍历的结点和所述后遍历的结点的位置。
9.根据权利要求8所述的装置,其特征在于,所述第一交换模块包括:
第二交换模块,用于当所述树结构中的父结点的大小信息大于所述树结构中该父结点的子结点的大小信息时,交换所述父结点和所述子结点的位置;
第三交换模块,用于对于所述树结构中属于同一层的多个子结点,当位于左侧的子结点的大小信息大于位于所述左侧的子结点右侧的子结点的大小信息时,交换所述左侧的子结点和所述右侧的子结点的位置。
10.根据权利要求6所述的装置,其特征在于,所述装置还包括:
第二生成模块,用于根据调整后的所述树结构生成新数据库语句;
输出模块,用于输出生成的所述新数据库语句。
CN201511032742.3A 2015-12-31 2015-12-31 调整数据表连接的方法和装置 Active CN106933929B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201511032742.3A CN106933929B (zh) 2015-12-31 2015-12-31 调整数据表连接的方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201511032742.3A CN106933929B (zh) 2015-12-31 2015-12-31 调整数据表连接的方法和装置

Publications (2)

Publication Number Publication Date
CN106933929A CN106933929A (zh) 2017-07-07
CN106933929B true CN106933929B (zh) 2020-02-07

Family

ID=59444179

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201511032742.3A Active CN106933929B (zh) 2015-12-31 2015-12-31 调整数据表连接的方法和装置

Country Status (1)

Country Link
CN (1) CN106933929B (zh)

Families Citing this family (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110019294A (zh) * 2017-09-19 2019-07-16 北京国双科技有限公司 一种数据库查询脚本的生成方法、数据库查询方法及装置

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6799265B1 (en) * 2000-07-11 2004-09-28 Intel Corporation Dependency checking for reconfigurable logic
CN101297290A (zh) * 2005-10-28 2008-10-29 梅迪尔雷夫默斯特尔和雷夫通信与信息技术Oeg公司 用于控制关系型数据库系统的方法
CN102270202A (zh) * 2010-06-04 2011-12-07 同济大学 基于树状知识的复杂决策问题形式化的计算机处理方法
CN103064875A (zh) * 2012-10-30 2013-04-24 中国标准化研究院 一种服务化空间数据分布式查询方法
CN103500188A (zh) * 2013-09-13 2014-01-08 北京奇虎科技有限公司 一种数据表生成的方法和系统
CN104090954A (zh) * 2014-07-04 2014-10-08 用友软件股份有限公司 只读表的连接方法和只读表的连接系统
CN104462429A (zh) * 2014-12-12 2015-03-25 北京国双科技有限公司 数据库查询语句的生成方法及装置

Patent Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6799265B1 (en) * 2000-07-11 2004-09-28 Intel Corporation Dependency checking for reconfigurable logic
CN101297290A (zh) * 2005-10-28 2008-10-29 梅迪尔雷夫默斯特尔和雷夫通信与信息技术Oeg公司 用于控制关系型数据库系统的方法
CN102270202A (zh) * 2010-06-04 2011-12-07 同济大学 基于树状知识的复杂决策问题形式化的计算机处理方法
CN103064875A (zh) * 2012-10-30 2013-04-24 中国标准化研究院 一种服务化空间数据分布式查询方法
CN103500188A (zh) * 2013-09-13 2014-01-08 北京奇虎科技有限公司 一种数据表生成的方法和系统
CN104090954A (zh) * 2014-07-04 2014-10-08 用友软件股份有限公司 只读表的连接方法和只读表的连接系统
CN104462429A (zh) * 2014-12-12 2015-03-25 北京国双科技有限公司 数据库查询语句的生成方法及装置

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
"隐私保护的一站多表跨多表频繁项集挖掘";林瑞 等;《计算机应用》;20131201;第33卷(第12期);第3437-3440页 *

Also Published As

Publication number Publication date
CN106933929A (zh) 2017-07-07

Similar Documents

Publication Publication Date Title
KR102170929B1 (ko) 사용자 키워드 추출장치, 방법 및 컴퓨터 판독 가능한 저장매체
CN108664538B (zh) 一种输变电设备疑似家族性缺陷的自动辨识方法及系统
CN102682118A (zh) 一种多维数据模型访问方法及装置
CN106933893B (zh) 多维度数据的查询方法及装置
CN105045817B (zh) 基于事务日志的SQL Server数据库取证分析系统及方法
CN103577556A (zh) 一种获取问答对的相关联程度的装置和方法
CN108108426A (zh) 自然语言提问的理解方法、装置及电子设备
CN104484380A (zh) 个性化搜索方法及装置
JP5535062B2 (ja) ウェブログの時系列分析のためのデータ格納および照会方法及びその方法を実行するシステム
CN103714086A (zh) 用于生成非关系数据库的模式的方法和设备
CN111026815B (zh) 基于用户辅助修正下的实体对特定关系抽取方法
CN106933845A (zh) 使用sql实现mdx查询效果的方法和装置
CN104346331A (zh) Xml数据库的检索方法及系统
CN105677637A (zh) 智能问答系统中抽象语义库的更新方法及更新装置
CN104699695B (zh) 一种基于多特征语义树核的关系抽取方法和信息检索方法
CN103164393A (zh) 报表公式处理方法和系统
CN107463669B (zh) 解析爬虫爬取的网页数据的方法及装置
CN102693320A (zh) 一种搜索方法及装置
CN106168968A (zh) 一种网站分类方法及装置
CN110737432A (zh) 一种基于词根表的脚本辅助设计方法及装置
CN105138643A (zh) 专利检索系统及其检索方法
CN106933902B (zh) 数据多维度自由剖析的查询方法及装置
CN112634004B (zh) 征信数据的血缘图谱分析方法与系统
CN106933929B (zh) 调整数据表连接的方法和装置
CN105320739A (zh) 信息提取方法及装置

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
CB02 Change of applicant information
CB02 Change of applicant information

Address after: 100083 No. 401, 4th Floor, Haitai Building, 229 North Fourth Ring Road, Haidian District, Beijing

Applicant after: Beijing Guoshuang Technology Co.,Ltd.

Address before: 100086 Cuigong Hotel, 76 Zhichun Road, Shuangyushu District, Haidian District, Beijing

Applicant before: Beijing Guoshuang Technology Co.,Ltd.

GR01 Patent grant
GR01 Patent grant