CN108256003A - 一种根据分析数据重复率提高union运算效率的方法 - Google Patents

一种根据分析数据重复率提高union运算效率的方法 Download PDF

Info

Publication number
CN108256003A
CN108256003A CN201711497512.3A CN201711497512A CN108256003A CN 108256003 A CN108256003 A CN 108256003A CN 201711497512 A CN201711497512 A CN 201711497512A CN 108256003 A CN108256003 A CN 108256003A
Authority
CN
China
Prior art keywords
disk
data
union
rate
analysis data
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.)
Pending
Application number
CN201711497512.3A
Other languages
English (en)
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.)
TIANJIN NANKAI UNIVERSITY GENERAL DATA TECHNOLOGIES Co Ltd
Original Assignee
TIANJIN NANKAI UNIVERSITY GENERAL DATA TECHNOLOGIES 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 TIANJIN NANKAI UNIVERSITY GENERAL DATA TECHNOLOGIES Co Ltd filed Critical TIANJIN NANKAI UNIVERSITY GENERAL DATA TECHNOLOGIES Co Ltd
Priority to CN201711497512.3A priority Critical patent/CN108256003A/zh
Publication of CN108256003A publication Critical patent/CN108256003A/zh
Pending legal-status Critical Current

Links

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/24Querying
    • G06F16/242Query formulation
    • G06F16/2433Query languages
    • 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/22Indexing; Data structures therefor; Storage structures
    • G06F16/2282Tablespace storage structures; Management thereof

Landscapes

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

Abstract

本发明提供了一种根据分析数据重复率提高union运算效率的方法,首先分析了集合的数据特征,然后对符合某些特征的集合进行优化,从而大幅缩短运算时间。这里的数据特征是指数据有较多的重复值。分析数据特征时采用抽样方式来分析重复率,对符合特征值的集合先对union两端的数据分别进行去重操作,然后再进行union运算,这样大大降低了union操作的时间和磁盘IO时间,从而降低总查询时间。

Description

一种根据分析数据重复率提高union运算效率的方法
技术领域
本发明属于数据库领域,尤其是涉及一种根据分析数据重复率提高 union运算效率的方法。
背景技术
数据库的Union操作是指取A集合与B集合的并集,且结果没有重复值。
下面的sql语句执行从t1表取出所有数据,然后从t2表取出所有数据, 然后做union:
SELECT*FROM t1UNION SELECT*FROM t2;
一般的数据库处理为3步:
1、集合A的值,然后再取集合B的值
2、进行并操作
3、对结果去重
如图2是oracle11的执行计划(缩进越多,越先执行),它的执行顺序符合上面的处理步骤,按ID看执行顺序为3->4->2->1->0
步骤1.在执行ID3,ID4过程中,首先取出所有t1,t2表的内容,转换为特定的格式保存到磁盘为临时文件,这个操作可能有大量的磁盘IO;
步骤2.在执行ID2时,时间是把上一步产生的临时文件拼接起来,同样有大量的磁盘IO
步骤3.在执行ID1时,会对第二步生成的新临时文件逐行读取,然后做去重操作。
对某些数据特征,即集合里面的数据重复率较高时,步骤1和步骤2生成的临时文件会很大,而步骤3生成的最终结果会很小.这样会造成2个问题:
步骤1,2生成大量无用临时文件,增加了磁盘IO时间
由于步骤2生成的临时文件较大,会增加步骤3的CPU处理时间。
发明内容
有鉴于此,本发明旨在提出一种根据分析数据重复率提高union运算效率的方法,可以对高重复率的集合大幅度优化,也不会对普通数据添加额外的去重运算负担。
为达到上述目的,本发明的技术方案是这样实现的:
一种根据分析数据重复率提高union运算效率的方法,包括如下步骤:
1)对两个表分别抽取采样,判断每个表的采样的重复率是否大于设定的阈值;
2)对于重复率大于阈值的表,进行去重操作并将数据写入磁盘;对于重复率不大于阈值的表,将数据直接写入磁盘;
3)从磁盘读取临时文件,然后进行union运算。
进一步的,在步骤1)中,对两个表均按固定步长抽取采样。
进一步的,在步骤2)中,进行去重操作并将数据写入磁盘的方法为:从表里每次读一行,若已经写到磁盘的临时文件,则跳过这一行,否则写入磁盘,直到所有的行都被读完。
相对于现有技术,本发明具有以下优势:
数据特征的分析是通过采样方式抽取部分数据来分析重复率.由于是抽样方式,所以时间可以忽略不计;对符合数据特征的数据,将去重操作提前,对步骤1和步骤2只输出不重复的数值,这样减少了步骤1和步骤2的磁盘IO输出,从而也降低了步骤3的CPU负担;当数据比较离散,即重复率不高时,按照原来的办法,直接到磁盘的临时文件;通过本发明,既可以对高重复率的集合大幅度优化,也不会对普通数据添加额外的去重运算负担。
附图说明
构成本发明的一部分的附图用来提供对本发明的进一步理解,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:
图1为本发明方法流程图;
图2为oracle11的执行计划。
具体实施方式
需要说明的是,在不冲突的情况下,本发明中的实施例及实施例中的特征可以相互组合。
下面将参考附图并结合实施例来详细说明本发明。
本发明以SELECT*FROM t1UNION SELECT*FROM t2为例说明,如图1所示:
1.数据采样
对t1表t2表按固定步长采样,如1/500,
假设t1表有1000个数据块,t2表有2000个数据块
则对t1表的第1,500块和t2表的1,500,1000,1500数据块进行采样,即读取这些数据块的内容。
2.评估
对t1表和t2表采样的数据进行重复率分析,
重复率=(1-没有重复的元素个数/总元素个数)*100%
若t1表的重复率大于50%,则首先进行去重操作,进入步骤4,否则按照原来的方案,直接将所有数据写到磁盘为临时文件,然后进入步骤4;
对t2表的处理方式同t1一致。
3.去重
从t1或t2表里每次读一行,若已经写到磁盘的临时文件,则跳过这一行,否则写入磁盘,直到所有的行都被读完,此时磁盘上的临时文件将只是t1或t2表中的不重复的值。
4.进行union运算
从磁盘读取临时文件,然后进行集合运算。
以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。

Claims (3)

1.一种根据分析数据重复率提高union运算效率的方法,其特征在于包括如下步骤:
1)对两个表分别抽取采样,判断每个表的采样的重复率是否大于设定的阈值;
2)对于重复率大于阈值的表,进行去重操作并将数据写入磁盘;对于重复率不大于阈值的表,将数据直接写入磁盘;
3)从磁盘读取临时文件,然后进行union运算。
2.根据权利要求1所述的一种根据分析数据重复率提高union运算效率的方法,其特征在于:在步骤1)中,对两个表均按固定步长抽取采样。
3.根据权利要求1所述的一种根据分析数据重复率提高union运算效率的方法,其特征在于:在步骤2)中,进行去重操作并将数据写入磁盘的方法为:从表里每次读一行,若已经写到磁盘的临时文件,则跳过这一行,否则写入磁盘,直到所有的行都被读完。
CN201711497512.3A 2017-12-29 2017-12-29 一种根据分析数据重复率提高union运算效率的方法 Pending CN108256003A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201711497512.3A CN108256003A (zh) 2017-12-29 2017-12-29 一种根据分析数据重复率提高union运算效率的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201711497512.3A CN108256003A (zh) 2017-12-29 2017-12-29 一种根据分析数据重复率提高union运算效率的方法

Publications (1)

Publication Number Publication Date
CN108256003A true CN108256003A (zh) 2018-07-06

Family

ID=62725240

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201711497512.3A Pending CN108256003A (zh) 2017-12-29 2017-12-29 一种根据分析数据重复率提高union运算效率的方法

Country Status (1)

Country Link
CN (1) CN108256003A (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113672619A (zh) * 2021-08-17 2021-11-19 天津南大通用数据技术股份有限公司 一种按照hash规则切分数据使其更均匀的方法
CN117331919A (zh) * 2023-09-18 2024-01-02 本原数据(北京)信息技术有限公司 数据库联合查询方法、装置、电子设备及存储介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102185889A (zh) * 2011-03-28 2011-09-14 北京邮电大学 基于iSCSI的重复数据删除方法
CN104750432A (zh) * 2015-03-16 2015-07-01 华为技术有限公司 一种数据存储方法及装置
CN105630834A (zh) * 2014-11-07 2016-06-01 中兴通讯股份有限公司 一种实现重复数据删除的方法及装置
CN106611035A (zh) * 2016-06-12 2017-05-03 四川用联信息技术有限公司 一种云存储中重复数据删除的检索算法
CN106648991A (zh) * 2016-12-28 2017-05-10 长春理工大学 数据容灾***中的重复数据删除方法

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN102185889A (zh) * 2011-03-28 2011-09-14 北京邮电大学 基于iSCSI的重复数据删除方法
CN105630834A (zh) * 2014-11-07 2016-06-01 中兴通讯股份有限公司 一种实现重复数据删除的方法及装置
CN104750432A (zh) * 2015-03-16 2015-07-01 华为技术有限公司 一种数据存储方法及装置
CN106611035A (zh) * 2016-06-12 2017-05-03 四川用联信息技术有限公司 一种云存储中重复数据删除的检索算法
CN106648991A (zh) * 2016-12-28 2017-05-10 长春理工大学 数据容灾***中的重复数据删除方法

Non-Patent Citations (4)

* Cited by examiner, † Cited by third party
Title
ZHVSBY: "union 居然排序了", 《CSDN》 *
周春晖: "基于Simhash的大数据去重改进算法", 《计算机与现代化》 *
木偶跳舞: "MySQL中UNION和UNION ALL的使用", 《CSDN》 *
陌上桑花开花: "数据库基本概念及优化", 《CSDN》 *

Cited By (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN113672619A (zh) * 2021-08-17 2021-11-19 天津南大通用数据技术股份有限公司 一种按照hash规则切分数据使其更均匀的方法
CN113672619B (zh) * 2021-08-17 2024-02-06 天津南大通用数据技术股份有限公司 一种按照hash规则切分数据使其更均匀的方法
CN117331919A (zh) * 2023-09-18 2024-01-02 本原数据(北京)信息技术有限公司 数据库联合查询方法、装置、电子设备及存储介质
CN117331919B (zh) * 2023-09-18 2024-06-11 本原数据(北京)信息技术有限公司 数据库联合查询方法、装置、电子设备及存储介质

Similar Documents

Publication Publication Date Title
CN106844507B (zh) 一种数据批处理的方法及设备
CN105045817B (zh) 基于事务日志的SQL Server数据库取证分析***及方法
KR101617696B1 (ko) 데이터 정규표현식의 마이닝 방법 및 장치
CN102012896B (zh) 一种实现文件内容批量修改的方法和装置
CN103761236A (zh) 一种增量式频繁模式增长数据挖掘方法
CN104123280B (zh) 文件比对方法和设备
CN104753540A (zh) 数据压缩方法、数据解压方法和装置
CN104268216A (zh) 一种基于互联网信息的数据清洗***
CN107301214A (zh) 在hive中数据迁移方法、装置及终端设备
US20120290602A1 (en) Method and system for identifying traditional arabic poems
CN108255837A (zh) 一种sql解析器及方法
CN112434003B (zh) 一种sql优化方法、装置、计算机设备及存储介质
CN105677903A (zh) 获取数据的方法和装置、计算机设备
CN108256003A (zh) 一种根据分析数据重复率提高union运算效率的方法
CN103440197B (zh) 一种基于对比测试自动生成差异测试报告的方法
CN104731908A (zh) 一种基于etl的数据清洗方法
CN103678041A (zh) 一种增量备份方法及***
CN104572730A (zh) 数字资源导入、导出方法及装置
CN104346378A (zh) 一种实现复杂数据处理的方法、装置及***
CN107203509A (zh) 标题生成方法和装置
CN106933571A (zh) 白板文档存储方法及***
CN111221967A (zh) 一种基于区块链架构的语言数据分类存储***
CN116186060A (zh) 数据查询方法、装置、设备及存储介质
CN104750846A (zh) 一种子串查找方法及装置
CN106569986A (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
RJ01 Rejection of invention patent application after publication

Application publication date: 20180706

RJ01 Rejection of invention patent application after publication