[发明专利]一种基于Oracle分区的数据存储方法及装置在审
申请号: | 201310256059.2 | 申请日: | 2013-06-24 |
公开(公告)号: | CN103279582A | 公开(公告)日: | 2013-09-04 |
发明(设计)人: | 不公告发明人 | 申请(专利权)人: | 浙江宇天科技股份有限公司;广东宇天科技有限公司;夏阳 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 北京集佳知识产权代理有限公司 11227 | 代理人: | 王宝筠 |
地址: | 310002 浙江省杭州市*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 oracle 分区 数据 存储 方法 装置 | ||
技术领域
本发明属于数据库存储技术领域,尤其涉及一种基于Oracle分区的数据存储方法及装置。
背景技术
Oracle分区是一种处理超大型表的技术。分区是一种“分而治之”的技术,通过将大表和索引分成可以管理的小块,从而避免了对每个表作为一个大的、单独的对象进行管理,为大量数据提供了可伸缩的性能。
分区通过将操作分配给更小的存储单元,减少了进行管理操作的时间;通过增强的并行处理,提高了性能;通过屏蔽故障数据的分区,增加了可用性。Oracle提供了三种基本的分区方法:范围分区、列表分区和哈希分区,采用上述分区方法,可以将数据表分成单一表或组合分区表,用户可以根据实际业务需要以最佳方式调整数据细分。
现有技术中的数据库存储方法为:为数据表建立一个表空间,为表空间分配一定数量的数据文件,对数据表进行分区,将分区的数据存储在表空间的数据文件中。发明人在实现本发明创造的过程中发现:由于分区数据只能写入一个表空间的数据文件中,因此,很可能出现经常被读取的数据写入到同一个数据文件中的情况,当用户大并发的读取这些数据时很容易产生数据IO热点,对存在数据IO热点的数据块进行查询时,SQL语句执行耗时很长,导致数据库连接数增长很快,由于每个连接数耗费一定的资源,连接数的不断增加最终导致数据库响应缓慢甚至死掉。
发明内容
有鉴于此,本发明提供了一种基于Oracle分区的数据存储方法及装置,用以解决现有技术中的数据库存储方法容易产生数据IO热点,导致对存在数据IO热点的数据块进行查询时,SQL语句执行耗时很长,进一步导致数据库连接数增长很快,最终导致数据库响应缓慢甚至死掉的问题,其技术方案如下:
一方面,一种基于Oracle分区的数据存储方法,包括:
为数据表创建M个表空间,其中,M为大于等于2的整数;
将N个数据文件均衡分配到所述M个表空间中,其中,N为大于等于M的整数;
对所述数据表进行分区;
将所述数据表的第i个分区的数据存储至第i-k*M个表空间的数据文件中,其中,i=1,2,…,P,P为数据表的分区个数,且P为大于M的整数,表示向上取整。
其中,所述N个数据文件的大小相同,所述将N个数据文件均衡分配到M个表空间中的过程包括:
当N能被M整除时,为每个表空间分配N/M个数据文件;
当N不能被M整除时,为M-R个表空间中的每个表空间分配个数据文件,为其余表空间中的每个表空间分配个数据文件,其中,R为N除以M得到的余数,表示向下取整。
可选的,上述方法还包括:
当所述数据表中的数据增加,并且为所述M个表空间分配的N个数据文件不足以存储数据表中增加的数据时,创建至少一个表空间,并依据增加的数据量为所述表空间分配数据文件,以使数据表中新增加的数据存储到该新创建的表空间的数据文件中。
可选的,上述方法还包括:
当所述数据表中的数据增加,并且为所述M个表空间分配的N个数据文件不足以存储数据表中增加的数据时,依据增加的数据量为所述M个表空间中的至少一个表空间分配数据文件,以使数据表中新增加的数据存储到该数据文件中。
可选的,上述方法还包括:
检测所述N个数据文件的读写次数;
将读写次数大于第一预设值的数据文件中的数据移至其它表空间中读写次数小于第二预设值的数据文件中,其中,所述第一预设值大于所述第二预设值。
另一方面,一种基于Oracle分区的数据存储装置,包括:
第一创建单元,用于为数据表创建M个表空间,其中,M为大于等于2的整数;
第一分配单元,用于将N个数据文件均衡分配到M个表空间中,其中,N为大于等于M的整数;
数据表分区单元,用于对所述数据表进行分区;
数据存储单元,用于将所述数据表的第i个分区的数据存储至第i-k*M个表空间的数据文件中,其中,i=1,2,…,P,P为数据表的分区个数,且P为大于M的整数,表示向上取整。
其中,所述N个数据文件的大小相同,所述第一分配单元包括:
分配子单元,用于当N能被M整除时,为每个表空间分配N/M个数据文件,当N不能被M整除时,为M-R个表空间中的每个表空间分配个数据文件,为其余表空间中的每个表空间分配个数据文件,其中,R为N除以M得到的余数,表示向下取整。
可选的,所述装置还包括:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于浙江宇天科技股份有限公司;广东宇天科技有限公司;夏阳,未经浙江宇天科技股份有限公司;广东宇天科技有限公司;夏阳许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310256059.2/2.html,转载请声明来源钻瓜专利网。
- 数据显示系统、数据中继设备、数据中继方法、数据系统、接收设备和数据读取方法
- 数据记录方法、数据记录装置、数据记录媒体、数据重播方法和数据重播装置
- 数据发送方法、数据发送系统、数据发送装置以及数据结构
- 数据显示系统、数据中继设备、数据中继方法及数据系统
- 数据嵌入装置、数据嵌入方法、数据提取装置及数据提取方法
- 数据管理装置、数据编辑装置、数据阅览装置、数据管理方法、数据编辑方法以及数据阅览方法
- 数据发送和数据接收设备、数据发送和数据接收方法
- 数据发送装置、数据接收装置、数据收发系统、数据发送方法、数据接收方法和数据收发方法
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置
- 数据发送方法、数据再现方法、数据发送装置及数据再现装置