CN108664481A - 一种数据检索方法及服务器 - Google Patents
一种数据检索方法及服务器 Download PDFInfo
- Publication number
- CN108664481A CN108664481A CN201710189345.XA CN201710189345A CN108664481A CN 108664481 A CN108664481 A CN 108664481A CN 201710189345 A CN201710189345 A CN 201710189345A CN 108664481 A CN108664481 A CN 108664481A
- Authority
- CN
- China
- Prior art keywords
- reference column
- index
- grouping
- index structure
- read path
- 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
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供一种数据检索方法及服务器,所述方法包括:在数据库的数据表中获取核心数据表;对所述核心数据表的查询语句进行解析;根据第一预设规则和解析的结果获得分组基准列;根据第二预设规则和所述分组基准列,获得基于所述核心数据表所构建的索引,并根据所述索引进行数据的检索。所述服务器执行上述方法。本发明实施例提供的数据检索方法及服务器,能够大幅减少了数据库的IO数量、以及存储空间、从而显著地提高系统整体运行的效率。
Description
技术领域
本发明实施例涉及数据检索技术领域,具体涉及一种数据检索方法及服务器。
背景技术
关系型数据库,目前主流的产品有ORACLE、SQLSERVER、DB2、INFORMIX、MYSQL等,几乎被应用于所有的大型软件系统与项目中,并都处于这些大型系统与项目的核心地位。而索引,是关系型数据库中最重要的技术之一,它是关系型数据库效率与速度的保障。
数据库中的数据表由众多的查询语句所组成,为保证每一条查询语句执行的最优化,现有技术普遍采用为每一条查询语句构建索引,系统根据构建的索引执行每一条查询语句,从而实现对数据的检索,但是当数据库中的查询语句数据很多,系统执行的任务量庞大、导致系统的CPU与IO资源等开销很大、造成了系统整体运行速度的下降。
因此,如何从系统整体的全局考虑构建索引、提高系统整体运行的效率,成为亟须解决的问题。
发明内容
针对现有技术存在的问题,一方面,本发明实施例提供一种数据检索方法,包括:
在数据库的数据表中获取核心数据表;
对所述核心数据表的查询语句进行解析;
根据第一预设规则和解析的结果获得分组基准列;
根据第二预设规则和所述分组基准列,获得基于所述核心数据表所构建的索引,并根据所述索引进行数据的检索。
另一方面,本发明实施例提供一种数据检索服务器,包括:
第一获取模块,用于在数据库的数据表中获取核心数据表;
解析模块,用于对所述核心数据表的查询语句进行解析;
第二获取模块,用于根据第一预设规则和解析的结果获得分组基准列;
第三获取模块,用于根据第二预设规则和所述分组基准列,获得基于所述核心数据表所构建的索引,并根据所述索引进行数据的检索。
本发明实施例提供的数据检索方法及服务器,能够大幅减少了数据库的IO数量、以及存储空间、从而显著地提高系统整体运行的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作一简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明实施例数据检索方法的流程示意图;
图2为本发明实施例数据检索方法效果图;
图3为本发明实施例数据检索服务器的结构示意图;
图4为本发明实施例提供的服务器实体结构示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
图1为本发明实施例数据检索方法的流程示意图,如图1所示,本发明实施例提供的一种数据检索方法,包括以下步骤:
S1:在数据库的数据表中获取核心数据表。
具体的,服务器在数据库的数据表中获取核心数据表。需要说明的是:核心数据表是从数据库中获取的,具体的获取方式可以通过如下两种方式确定:
(1)业务使用频繁程度:从数据库中的事件争用统计表中查询产生资源争用最多的数据表。以ORACLE数据库为例,可以从V$SESSION_WAIT中统计“全表扫描”、“单块读”、“热块争用”、“锁争用”等资源争用最多的数据表。这些数据表是造成系统资源消耗过多的数据表,分别取争用资源大于预设值的P个数据表作为核心数据表,其中P的具体数值可以根据实际情况自主设置。
(2)数据表占用系统空间的大小:从数据库空间统计表中查询所占空间最大的数据表,所占空间越大,说明对该数据表操作时消耗的资源会越多。以ORACLE数据库为例,可以从DBA_OBJECTS中统计数据库中各张数据表所占空间的大小,分别取所占空间大于预设值的Q个数据表作为核心数据表,其中Q的具体数值可以根据实际情况自主设置。
S2:对所述核心数据表的查询语句进行解析。
具体的,服务器对所述核心数据表的查询语句进行解析。需要说明的是:查询语句可以是SQL语句,解析出的结果可以包括、多个列、多个列的读取路径以及列后的运算符,可以在离线的方式下,基于数据库对象对全部SQL语句进行解析,获得以核心数据表为单位的读取路径(ACCESS PATH)。在解析的结果中对相同的读取路径进行合并,对应运算符说明如下:“=”解析为不显示;IN解析为(IN);BETWEEN解析为(B);不等于也解析为(B);LIKE解析为(L);JOIN列解析为(J)。从数据库中搜集SQL语句的方法可以采用如下方式:
1)全量直接搜集方式。该方式从本地连接到数据库,在本地通过DBLINK的方式搜集数据库对象和SGA中缓存的SQL语句。该搜集方式的具体实现步骤如下所示:
①创建本地库及引擎。
②创建DBLINK连接。
③利用已创建的DBLINK连接到对象数据库。
④创建并执行数据库对象(DBMS OBJECTS)搜集作业。
⑤创建并执行SGA SQL搜集作业。
⑥创建并执行SQL语句解析作业。
2)解析日志方式。该方式对应用在使用过程中记录下来的日志文件直接进行解析,从中抽取SQL语句,并对其进行解析。该搜集方式的具体实现步骤如下所示:
①创建本地库及引擎。
②创建DBLINK连接。
③创建并执行数据库对象(DBMS OBJECTS)搜集作业。
④加载并解析日志文件。
3)特定表搜集方式。可以在核心数据表中根据实际情况选择特定表进行搜集,具体的搜集方式可以采用上述的方式。
S3:根据第一预设规则和解析的结果获得分组基准列。
具体的,服务器根据第一预设规则和解析的结果获得分组基准列。需要说明的是:以某张业务表为例,对使用该表的41条SQL查询语句进行解析,获得如表1所示的11条读取路径。
表1
以读取路径1为例,其中包括:CUST_NO、ARR_DT(B)两个列,其中:CUST_NO对应的运算符为“=”参照上述介绍,此处不显示,ARR_DT(B)对应的运算符为“B”、示意为BETWEEN。具体获取分组基准列的方式,可以参照如表2所示的准则,
表2
S4:根据第二预设规则和所述分组基准列,获得基于所述核心数据表所构建的索引,并根据所述索引进行数据的检索。
具体的,服务器根据第二预设规则和所述分组基准列,获得基于所述核心数据表所构建的索引,并根据所述索引进行数据的检索。通过表3对与分组基准列对应匹配的读取路径进行说明:
表3
假设获取到的分组基准列为4个,分别为CUST_NO、PRICE_STD、BNK_CD、BSE_CRD_NO(见表3中的加粗部分),以CUST_NO为例进行说明:将所有读取路径中包括有CUST_NO的作为CUST_NO匹配的读取路径,参照表1,可以看出读取路径1和读取路径2含有CUST_NO,因此将读取路径1和读取路径2作为与CUST_NO相应的匹配读取路径,同理分别得到PRICE_STD、BNK_CD、BSE_CRD_NO相应的匹配读取路径,具体的匹配对应关系可以参照表3。
下面通过表4,具体说明根据第二预设规则和所述分组基准列,获得基于所述核心数据表所构建的索引。
表4
将每一个分组基准列作为索引的第一个元素,继续以CUST_NO为例说明,即:CUST_NO作为第一索引结构的第一个元素,并将PRICE_STD、BNK_CD、BSE_CRD_NO作为第一剩余分组基准列,同理PRICE_STD、BNK_CD、BSE_CRD_NO不再赘述。
在与CUST_NO匹配的读取路径1和读取路径2中查找是否有分组基准列PRICE_STD、BNK_CD、BSE_CRD_NO其中之一,从表4看出,PRICE_STD在读取路径2中,将PRICE_STD作为第一索引结构的第二个元素,即由CUST_NO、PRICE_STD组成第一索引结构,并将BNK_CD、BSE_CRD_NO作为第二剩余分组基准列。
搜索将PRICE_STD作为第一个元素的索引,并将搜索到的索引作为第二索引结构,从表4可以看出,第一元素为PRICE_STD的匹配的读取路径为:读取路径2、读取路径3、读取路径5、读取路径8、读取路径9和读取路径6,读取路径3、读取路径8、读取路径9都有BNK_CD、读取路径6有BSE_CRD_NO,但BSE_CRD_NO位于PRICE_STD之前,不符合要求,因此将第二剩余分组基准列中的BNK_CD作为第二索引结构的第二个元素,置于第二索引结构的第一个元素PRICE_STD之后,并将剩余的BSE_CRD_NO作为第三剩余分组基准列,从表4还可以看出:PRICE_STD的匹配的读取路径中有非分组基准列ARR_DT(B)、RR_DT(L)、ACT_NO、可以根据实际情况选择其中之一,本发明实施例选择ARR_DT(B)作为第二索引结构的第三个元素,置于第二索引结构的第二个元素后,并组成第二索引结构,将剩余的非分组基准列RR_DT(L)、ACT_NO作为第一剩余非分组基准列。
继续搜索将BNK_CD作为第一个元素的索引,并将搜索到的索引作为第三索引结构,从表4可以看出,第一元素为BNK_CD的匹配的读取路径为:读取路径10、读取路径4、读取路径3、读取路径8、读取路径9和读取路径11,与第一个元素BNK_CD匹配的读取路径中没有第三剩余分组基准列BSE_CRD_NO、第一剩余非分组基准列有SND_CD、ARR_DT(L)、RR_DT(L)、假设SND_CD、ARR_DT(L)出现的次数都高于预设值(表4未示出),假设ARR_DT(L)出现的次数多于SND_CD出现的次数(表4未示出),则可以提取ARR_DT(L)作为第三索引结构的第二个元素、相应地提取SND_CD作为第三索引结构的第三个元素,第二个元素、第三个元素依次置于第一个元素BNK_CD后,组成第三索引结构。
将第三剩余分组基准列中的BSE_CRD_NO作为第四索引结构的第一个元素,并组成第四索引结构。
构造索引的主要目的是为了降低数据库的IO(包括逻辑IO和物理IO),逻辑IO能反映出系统的CPU资源占用,所以用总的IO评估是最佳方法。因此评估索引效果的主要途径是比较在构造前后,相同数据量,相同数据库环境,相同SQL语句的情况下,IO的缩减程度。为了说明此问题,以表为单位,将使用该表的全部SQL语句在执行过程中读取的逻辑IO数量与物理IO数量汇总,便可获得表上的IO总量,仅需将构造索引之前和之后表上的IO总量发生的变化,便可以比较出构造索引的效果。图2为本发明实施例数据检索方法效果图,由图2所示,前后表上的IO数量缩减了11倍。
除此之外,还有索引数量的变化,该表构造索引之前有11个索引,构造索引设计之后,只有4个索引。以及存储空间的节省,构造索引之前,该表上11个索引所使用的存储空间为62G,之后4个索引所使用的存储空间为27G。
本发明实施例提供的数据检索方法,大幅减少了数据库的IO数量、以及存储空间、从而显著地提高系统整体运行的效率。
在上述实施例的基础上,所述在数据库的数据表中获取核心数据表,包括:
根据从所述数据库中的事件争用统计表中查询的资源争用数值大于预设值的数据表作为核心数据表。
具体的,服务器根据从所述数据库中的事件争用统计表中查询的资源争用数值大于预设值的数据表作为核心数据表。可参照上述实施例,不再赘述。
和/或,
根据从所述数据库中的空间统计表中查询所占空间数值大于预设值的数据表作为核心数据表。
具体的,服务器根据从所述数据库中的空间统计表中查询所占空间数值大于预设值的数据表作为核心数据表。可参照上述实施例,不再赘述。
本发明实施例提供的数据检索方法,通过从满足资源争用条件和/或所占空间条件的数据表中获取核心数据表,保证了核心数据表获取的合理性。
在上述实施例的基础上,所述解析的结果包括多个列、列后的运算符、所述多个列的读取路径,相应地,所述根据第一预设规则和解析的结果获得分组基准列,包括:
将所述多个列在所述读取路径中出现次数大于预设次数阈值的列,作为所述分组基准列。或,
具体的,服务器将所述多个列在所述读取路径中出现次数大于预设次数阈值的列,作为所述分组基准列。可参照上述实施例,不再赘述。或,
将所述多个列中包含有所述运算符特定标识的列,作为所述分组基准列。或,
具体的,服务器将所述多个列中包含有所述运算符特定标识的列,作为所述分组基准列。运算符特定标识可以是运算符“=”,该运算符特定标识表示该列具有较好的执行速度。或,
根据所述多个列的分布,获得所述分组基准列。或,
具体的,服务器根据所述多个列的分布,获得所述分组基准列。可参照上述实施例,不再赘述。或,
将所述读取路径出现频次大于预设频次所对应的多个列作为所述分组基准列。
具体的,服务器将所述读取路径出现频次大于预设频次所对应的多个列作为所述分组基准列。可参照上述实施例,不再赘述。
本发明实施例提供的数据检索方法,通过不同的方式获取到分组基准列、进一步地为后续构建数据索引提供了有效依据。
在上述实施例的基础上,所述根据所述多个列的分布,获得所述分组基准列,包括:
根据公式:离散度=剔除重复列值后的剩余行数/核心数据表总行数×100%,计算反映所述多个列分布的离散度。
具体的,服务器根据公式:离散度=剔除重复列值后的剩余行数/核心数据表总行数×100%,计算反映所述多个列分布的离散度。参照表5进行举例说明:如表5所示,核心数据表总行数为10,剔除重复列值后的列saleno的值包括:2、5、8、1、3、9,对应的剩余行数为6,离散度为(6/10)×100%=60%,反映所述多个列分布的离散度,该结果值越大,说明列的离散度越好,否则说明离散度不好。
表5
序号 | 列 | 列值 |
1 | saleno | 2 |
2 | saleno | 5 |
3 | saleno | 8 |
4 | saleno | 5 |
5 | saleno | 8 |
6 | saleno | 5 |
7 | saleno | 5 |
8 | saleno | 1 |
9 | saleno | 3 |
10 | saleno | 9 |
将离散度数值大于预设数值的所述多个列,作为所述分组基准列。
具体的,服务器将离散度数值大于预设数值的所述多个列,作为所述分组基准列。可参照上述实施例,不再赘述。
本发明实施例提供的数据检索方法,通过公式计算得到离散度的数值,能够更加有效的通过离散度数值确定出分组基准列。
在上述实施例的基础上,所述根据第二预设规则和所述分组基准列,获得基于所述核心数据表所构建的索引,包括:
为每一个分组基准列匹配相应的所述读取路径。
具体的,服务器为每一个分组基准列匹配相应的所述读取路径。可参照上述实施例,不再赘述。
根据第二预设规则、匹配后的读取路径和所述分组基准列,获得基于所述核心数据表所构建的索引。
具体的,服务器根据第二预设规则、匹配后的读取路径和所述分组基准列,获得基于所述核心数据表所构建的索引。可参照上述实施例,不再赘述。
本发明实施例提供的数据检索方法,通过获得用于所述数据检索的索引,大幅减少了数据库的IO数量、以及存储空间、从而显著地提高数据检索的速度。
在上述实施例的基础上,所述根据第二预设规则、匹配后的读取路径和所述分组基准列,获得基于所述核心数据表所构建的索引,包括:
将每一个分组基准列作为所述索引的第一个元素,并将剩余的分组基准列作为第一剩余分组基准列。
具体的,服务器将每一个分组基准列作为所述索引的第一个元素,并将剩余的分组基准列作为第一剩余分组基准列。可参照上述实施例,不再赘述。
若与所述第一个元素对应的匹配后的读取路径中有第一剩余分组基准列,则提取与所述第一个元素对应的匹配后的读取路径中第一剩余分组基准列中的一个作为所述索引的第二个元素,置于所述第一个元素后,并组成第一索引结构,并将提取后的第一剩余分组基准列作为第二剩余分组基准列。
具体的,服务器若判断获知与所述第一个元素对应的匹配后的读取路径中有第一剩余分组基准列,则提取与所述第一个元素对应的匹配后的读取路径中第一剩余分组基准列中的一个作为所述索引的第二个元素,置于所述第一个元素后,并组成第一索引结构,并将提取后的第一剩余分组基准列作为第二剩余分组基准列。可参照上述实施例,不再赘述。
本发明实施例提供的数据检索方法,进一步通过先匹配读取路径,再获得索引,并根据获得的索引大幅减少了数据库的IO数量、以及存储空间、从而显著地提高数据检索的速度。
在上述实施例的基础上,所述方法还包括:
搜索将所述第一索引结构的第二个元素作为第一个元素的索引,并将搜索到的索引作为第二索引结构。
具体的,服务器搜索将所述第一索引结构的第二个元素作为第一个元素的索引,并将搜索到的索引作为第二索引结构。可参照上述实施例,不再赘述。
若与所述第二索引结构的第一个元素对应的匹配后的读取路径中有第二剩余分组基准列,则提取与所述第二索引结构的第一个元素对应的匹配后的读取路径中第二剩余分组基准列中的一个作为所述第二索引结构的第二个元素,置于所述第二索引结构的第一个元素后,并将提取后的第二剩余分组基准列作为第三剩余分组基准列。
具体的,服务器若判断获知与所述第二索引结构的第一个元素对应的匹配后的读取路径中有第二剩余分组基准列,则提取与所述第二索引结构的第一个元素对应的匹配后的读取路径中第二剩余分组基准列中的一个作为所述第二索引结构的第二个元素,置于所述第二索引结构的第一个元素后,并将提取后的第二剩余分组基准列作为第三剩余分组基准列。可参照上述实施例,不再赘述。
若与所述第二索引结构的第一个元素对应的匹配后的读取路径中有非分组基准列,则提取与所述第二索引结构的第一个元素对应的匹配后的读取路径中非分组基准列中的一个作为所述第二索引结构的第三个元素,置于所述第二索引结构的第二个元素后,并组成所述第二索引结构,将提取后的非分组基准列作为第一剩余非分组基准列。
具体的,服务器若判断获知与所述第二索引结构的第一个元素对应的匹配后的读取路径中有非分组基准列,则提取与所述第二索引结构的第一个元素对应的匹配后的读取路径中非分组基准列中的一个作为所述第二索引结构的第三个元素,置于所述第二索引结构的第二个元素后,并组成所述第二索引结构,将提取后的非分组基准列作为第一剩余非分组基准列。可参照上述实施例,不再赘述。
本发明实施例提供的数据检索方法,通过构建出的索引,大幅减少了数据库的IO数量、以及存储空间、从而显著地提高数据检索的速度。
在上述实施例的基础上,所述方法还包括:
搜索将所述第二索引结构的第二个元素作为第一个元素的索引,并将搜索到的索引作为第三索引结构。
具体的,服务器搜索将所述第二索引结构的第二个元素作为第一个元素的索引,并将搜索到的索引作为第三索引结构。可参照上述实施例,不再赘述。
若与所述第三索引结构的第一个元素对应的匹配后的读取路径中没有所述第三剩余分组基准列,则提取出现次数高于预设值的所述第一剩余非分组基准列中的一个或多个作为所述第三索引结构的第二或第N个元素,置于所述第三索引结构的第一个元素后,并组成所述第三索引结构。
具体的,服务器若判断获知与所述第三索引结构的第一个元素对应的匹配后的读取路径中没有所述第三剩余分组基准列,则提取出现次数高于预设值的所述第一剩余非分组基准列中的一个或多个作为所述第三索引结构的第二或第N个元素,置于所述第三索引结构的第一个元素后,并组成所述第三索引结构。可参照上述实施例,不再赘述。
本发明实施例提供的数据检索方法,进一步通过构建出的索引,大幅减少了数据库的IO数量、以及存储空间、从而显著地提高数据检索的速度。
在上述实施例的基础上,所述方法还包括:
直接将每一个第三剩余分组基准列作为第一个元素,并组成第四索引结构。
具体的,服务器直接将每一个第三剩余分组基准列作为第一个元素,并组成第四索引结构。可参照上述实施例,不再赘述。
本发明实施例提供的数据检索方法,进一步通过构建出的第四索引结构,大幅减少了数据库的IO数量、以及存储空间、从而显著地提高数据检索的速度。
图3为本发明实施例数据检索服务器的结构示意图,如图3所示,本发明实施例提供了一种数据检索服务器,包括第一获取模块1、解析模块2、第二获取模块3和第三获取模块4,其中:
第一获取模块1用于在数据库的数据表中获取核心数据表;解析模块2用于对所述核心数据表的查询语句进行解析;第二获取模块3用于根据第一预设规则和解析的结果获得分组基准列;第三获取模块4用于根据第二预设规则和所述分组基准列,获得基于所述核心数据表所构建的索引,并根据所述索引进行数据的检索。
具体的,第一获取模块1用于在数据库的数据表中获取核心数据表,第一获取模块1将核心数据表发送给解析模块2,解析模块2用于对所述核心数据表的查询语句进行解析,解析模块2将解析结果发送给第二获取模块3,第二获取模块3用于根据第一预设规则和解析的结果获得分组基准列,第二获取模块3将分组基准列发送给第三获取模块4,第三获取模块4用于根据第二预设规则和所述分组基准列,获得基于所述核心数据表所构建的索引,并根据所述索引进行数据的检索。
本发明实施例提供的数据检索服务器,大幅减少了数据库的IO数量、以及存储空间、从而显著地提高系统整体运行的效率。
本发明实施例提供的数据检索服务器具体可以用于执行上述各方法实施例的处理流程,其功能在此不再赘述,可以参照上述方法实施例的详细描述。
图4为本发明实施例提供的服务器实体结构示意图,如图4所示,所述服务器包括:处理器(processor)401、存储器(memory)402和总线403;
其中,所述处理器401、存储器402通过总线403完成相互间的通信;
所述处理器401用于调用所述存储器402中的程序指令,以执行上述各方法实施例所提供的方法,例如包括:在数据库的数据表中获取核心数据表;对所述核心数据表的查询语句进行解析;根据第一预设规则和解析的结果获得分组基准列;根据第二预设规则和所述分组基准列,获得基于所述核心数据表所构建的索引,并根据所述索引进行数据的检索。
本实施例公开一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法实施例所提供的方法,例如包括:在数据库的数据表中获取核心数据表;对所述核心数据表的查询语句进行解析;根据第一预设规则和解析的结果获得分组基准列;根据第二预设规则和所述分组基准列,获得基于所述核心数据表所构建的索引,并根据所述索引进行数据的检索。
本实施例提供一种非暂态计算机可读存储介质,所述非暂态计算机可读存储介质存储计算机指令,所述计算机指令使所述计算机执行上述各方法实施例所提供的方法,例如包括:在数据库的数据表中获取核心数据表;对所述核心数据表的查询语句进行解析;根据第一预设规则和解析的结果获得分组基准列;根据第二预设规则和所述分组基准列,获得基于所述核心数据表所构建的索引,并根据所述索引进行数据的检索。
本领域普通技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于一计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:ROM、RAM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所描述的服务器等实施例仅仅是示意性的,其中所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部模块来实现本实施例方案的目的。本领域普通技术人员在不付出创造性的劳动的情况下,即可以理解并实施。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
最后应说明的是:以上各实施例仅用以说明本发明的实施例的技术方案,而非对其限制;尽管参照前述各实施例对本发明的实施例进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分或者全部技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明的实施例各实施例技术方案的范围。
Claims (10)
1.一种数据检索方法,其特征在于,包括:
在数据库的数据表中获取核心数据表;
对所述核心数据表的查询语句进行解析;
根据第一预设规则和解析的结果获得分组基准列;
根据第二预设规则和所述分组基准列,获得基于所述核心数据表所构建的索引,并根据所述索引进行数据的检索。
2.根据权利要求1所述的方法,其特征在于,所述在数据库的数据表中获取核心数据表,包括:
根据从所述数据库中的事件争用统计表中查询的资源争用数值大于预设值的数据表作为核心数据表;
和/或,
根据从所述数据库中的空间统计表中查询所占空间数值大于预设值的数据表作为核心数据表。
3.根据权利要求1所述的方法,其特征在于,所述解析的结果包括多个列、列后的运算符、所述多个列的读取路径,相应地,所述根据第一预设规则和解析的结果获得分组基准列,包括:
将所述多个列在所述读取路径中出现次数大于预设次数阈值的列,作为所述分组基准列;或,
将所述多个列中包含有所述运算符特定标识的列,作为所述分组基准列;或,
根据所述多个列的分布,获得所述分组基准列;或,
将所述读取路径出现频次大于预设频次所对应的多个列作为所述分组基准列。
4.根据权利要求3所述的方法,其特征在于,所述根据所述多个列的分布,获得所述分组基准列,包括:
根据公式:离散度=剔除重复列值后的剩余行数/核心数据表总行数×100%,计算反映所述多个列分布的离散度;
将离散度数值大于预设数值的所述多个列,作为所述分组基准列。
5.根据权利要求1至4任一所述的方法,其特征在于,所述根据第二预设规则和所述分组基准列,获得基于所述核心数据表所构建的索引,包括:
为每一个分组基准列匹配相应的所述读取路径;
根据第二预设规则、匹配后的读取路径和所述分组基准列,获得基于所述核心数据表所构建的索引。
6.根据权利要求5所述的方法,其特征在于,所述根据第二预设规则、匹配后的读取路径和所述分组基准列,获得基于所述核心数据表所构建的索引,包括:
将每一个分组基准列作为所述索引的第一个元素,并将剩余的分组基准列作为第一剩余分组基准列;
若与所述第一个元素对应的匹配后的读取路径中有第一剩余分组基准列,则提取与所述第一个元素对应的匹配后的读取路径中第一剩余分组基准列中的一个作为所述索引的第二个元素,置于所述第一个元素后,并组成第一索引结构,并将提取后的第一剩余分组基准列作为第二剩余分组基准列。
7.根据权利要求6所述的方法,其特征在于,所述方法还包括:
搜索将所述第一索引结构的第二个元素作为第一个元素的索引,并将搜索到的索引作为第二索引结构;
若与所述第二索引结构的第一个元素对应的匹配后的读取路径中有第二剩余分组基准列,则提取与所述第二索引结构的第一个元素对应的匹配后的读取路径中第二剩余分组基准列中的一个作为所述第二索引结构的第二个元素,置于所述第二索引结构的第一个元素后,并将提取后的第二剩余分组基准列作为第三剩余分组基准列;
若与所述第二索引结构的第一个元素对应的匹配后的读取路径中有非分组基准列,则提取与所述第二索引结构的第一个元素对应的匹配后的读取路径中非分组基准列中的一个作为所述第二索引结构的第三个元素,置于所述第二索引结构的第二个元素后,并组成所述第二索引结构,将提取后的非分组基准列作为第一剩余非分组基准列。
8.根据权利要求7所述的方法,其特征在于,所述方法还包括:
搜索将所述第二索引结构的第二个元素作为第一个元素的索引,并将搜索到的索引作为第三索引结构;
若与所述第三索引结构的第一个元素对应的匹配后的读取路径中没有所述第三剩余分组基准列,则提取出现次数高于预设值的所述第一剩余非分组基准列中的一个或多个作为所述第三索引结构的第二或第N个元素,置于所述第三索引结构的第一个元素后,并组成所述第三索引结构。
9.根据权利要求8所述的方法,其特征在于,所述方法还包括:
直接将每一个第三剩余分组基准列作为第一个元素,并组成第四索引结构。
10.一种数据检索服务器,其特征在于,包括:
第一获取模块,用于在数据库的数据表中获取核心数据表;
解析模块,用于对所述核心数据表的查询语句进行解析;
第二获取模块,用于根据第一预设规则和解析的结果获得分组基准列;
第三获取模块,用于根据第二预设规则和所述分组基准列,获得基于所述核心数据表所构建的索引,并根据所述索引进行数据的检索。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710189345.XA CN108664481B (zh) | 2017-03-27 | 2017-03-27 | 一种数据检索方法及服务器 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201710189345.XA CN108664481B (zh) | 2017-03-27 | 2017-03-27 | 一种数据检索方法及服务器 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN108664481A true CN108664481A (zh) | 2018-10-16 |
CN108664481B CN108664481B (zh) | 2021-03-23 |
Family
ID=63786154
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201710189345.XA Active CN108664481B (zh) | 2017-03-27 | 2017-03-27 | 一种数据检索方法及服务器 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN108664481B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1538324A (zh) * | 2003-04-16 | 2004-10-20 | ��Ϊ��������˾ | 一种提高数据处理效率的方法 |
EP1867981A1 (en) * | 2005-03-16 | 2007-12-19 | The Tokyo Electric Power Company Incorporated | Method of measuring hydrogen concentration in member and device of measuring hydrogen concentration |
CN101937474A (zh) * | 2010-10-14 | 2011-01-05 | 广州从兴电子开发有限公司 | 海量数据查询方法及设备 |
CN103678577A (zh) * | 2013-12-10 | 2014-03-26 | 新浪网技术(中国)有限公司 | 一种数据更新方法及装置 |
CN105045851A (zh) * | 2015-07-07 | 2015-11-11 | 福建天晴数码有限公司 | 根据日志分析自动创建数据库索引的方法及系统 |
CN105320679A (zh) * | 2014-07-11 | 2016-02-10 | 中国移动通信集团重庆有限公司 | 一种数据表索引集合生成方法及装置 |
CN105447030A (zh) * | 2014-08-29 | 2016-03-30 | 阿里巴巴集团控股有限公司 | 一种索引处理方法与设备 |
CN105550371A (zh) * | 2016-01-27 | 2016-05-04 | 华中科技大学 | 一种面向大数据环境的元数据组织方法和系统 |
CN106202403A (zh) * | 2016-07-11 | 2016-12-07 | 浪潮通用软件有限公司 | 一种通过动态分析创建数据库索引的方法 |
CN106383830A (zh) * | 2016-08-23 | 2017-02-08 | 浙江宇视科技有限公司 | 一种数据检索方法及设备 |
-
2017
- 2017-03-27 CN CN201710189345.XA patent/CN108664481B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1538324A (zh) * | 2003-04-16 | 2004-10-20 | ��Ϊ��������˾ | 一种提高数据处理效率的方法 |
EP1867981A1 (en) * | 2005-03-16 | 2007-12-19 | The Tokyo Electric Power Company Incorporated | Method of measuring hydrogen concentration in member and device of measuring hydrogen concentration |
CN101937474A (zh) * | 2010-10-14 | 2011-01-05 | 广州从兴电子开发有限公司 | 海量数据查询方法及设备 |
CN103678577A (zh) * | 2013-12-10 | 2014-03-26 | 新浪网技术(中国)有限公司 | 一种数据更新方法及装置 |
CN105320679A (zh) * | 2014-07-11 | 2016-02-10 | 中国移动通信集团重庆有限公司 | 一种数据表索引集合生成方法及装置 |
CN105447030A (zh) * | 2014-08-29 | 2016-03-30 | 阿里巴巴集团控股有限公司 | 一种索引处理方法与设备 |
CN105045851A (zh) * | 2015-07-07 | 2015-11-11 | 福建天晴数码有限公司 | 根据日志分析自动创建数据库索引的方法及系统 |
CN105550371A (zh) * | 2016-01-27 | 2016-05-04 | 华中科技大学 | 一种面向大数据环境的元数据组织方法和系统 |
CN106202403A (zh) * | 2016-07-11 | 2016-12-07 | 浪潮通用软件有限公司 | 一种通过动态分析创建数据库索引的方法 |
CN106383830A (zh) * | 2016-08-23 | 2017-02-08 | 浙江宇视科技有限公司 | 一种数据检索方法及设备 |
Also Published As
Publication number | Publication date |
---|---|
CN108664481B (zh) | 2021-03-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108292315B (zh) | 储存和检索数据立方体中的数据 | |
US7058621B1 (en) | Method for extracting information from a database | |
EP2045731A1 (en) | Automatic generation of ontologies using word affinities | |
US9946752B2 (en) | Low-latency query processor | |
US20090077078A1 (en) | Methods and systems for merging data sets | |
CN106095951B (zh) | 基于负载均衡和查询日志的数据空间多维索引方法 | |
CN106055621A (zh) | 一种日志检索方法及装置 | |
WO2014058711A1 (en) | Creation of inverted index system, and data processing method and apparatus | |
TWI549009B (zh) | 資料庫管理方法、資料庫管理系統,以及資料庫樹狀結構 | |
CN103631922A (zh) | 基于Hadoop集群的大规模Web信息提取方法及系统 | |
CN107943952A (zh) | 一种基于Spark框架进行全文检索的实现方法 | |
CN106484815A (zh) | 一种基于海量数据类sql检索场景的自动识别优化方法 | |
US20220222233A1 (en) | Clustering of structured and semi-structured data | |
CN106649385A (zh) | 基于HBase数据库的数据排序方法和装置 | |
CN107871055A (zh) | 一种数据分析方法和装置 | |
US12013855B2 (en) | Trimming blackhole clusters | |
CN110990423B (zh) | Sql语句的执行方法、装置、设备和存储介质 | |
CN108664481A (zh) | 一种数据检索方法及服务器 | |
JP6459669B2 (ja) | カラムストア型データベース管理システム | |
CN110297836A (zh) | 基于压缩位图方式的用户标签存储方法和检索方法 | |
CN110008239A (zh) | 基于预计算优化的逻辑执行优化方法及系统 | |
US11106703B1 (en) | Clustering of structured and semi-structured data | |
CN106776704A (zh) | 统计信息收集方法和装置 | |
CN113051225A (zh) | 基于块数据的orc优化数据存储格式及数据读写方法 | |
Liu et al. | A performance study of three disk-based structures for indexing and querying frequent itemsets |
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 |