CN108256003A - 一种根据分析数据重复率提高union运算效率的方法 - Google Patents
一种根据分析数据重复率提高union运算效率的方法 Download PDFInfo
- 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
Links
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/2282—Tablespace 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操作是指取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)中,进行去重操作并将数据写入磁盘的方法为:从表里每次读一行,若已经写到磁盘的临时文件,则跳过这一行,否则写入磁盘,直到所有的行都被读完。
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)
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)
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 | 长春理工大学 | 数据容灾***中的重复数据删除方法 |
-
2017
- 2017-12-29 CN CN201711497512.3A patent/CN108256003A/zh active Pending
Patent Citations (5)
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)
Title |
---|
ZHVSBY: "union 居然排序了", 《CSDN》 * |
周春晖: "基于Simhash的大数据去重改进算法", 《计算机与现代化》 * |
木偶跳舞: "MySQL中UNION和UNION ALL的使用", 《CSDN》 * |
陌上桑花开花: "数据库基本概念及优化", 《CSDN》 * |
Cited By (4)
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 |