一种对于Oracle大数据量存储的优化方法技术

技术编号:7759143 阅读:597 留言:0更新日期:2012-09-14 01:05
本发明专利技术涉及Oracle在做大数据量存储时的一种优化方案。本发明专利技术适用于数据存储量较大且经常查询,需要进行大量数据运算时使用。能够通过利用Oracle分区方式来,平衡I/O提高系统数据吞吐量,对节约查询时间,节省成本有一定帮助。

【技术实现步骤摘要】

本专利技术涉及一种基于Oracle数据库在大数据量存储情况下,对于数据存储提供一种优化解决方案,提高数据安全与查询效率。具体地说是。
技术介绍
伴随着3G网络的逐步扩张,电信网络不断发展,站点、小区数量进一步增加,通信业务数据规模也越来越大,这就对于数据存储的安全及查询速度上有进一步的要求。并且对于通信行业来说,实时监控网络性能数据对于客户感知甚至预测网络风险是非常重要的。数据量的增大无疑会延迟数据的查询,导致数据实时性不能保证。为了加快数据展现 速度,优化存储显得非常必要。传统数据库存储是将数据全部存储在表中,单靠索引来提高查询速度。但是对于有限的磁盘I/o来说,大数据量情况下依然会发生数据阻塞。所以选取好的存储策略,平衡I/o分配,对于实时数据的展现是非常必要的。
技术实现思路
本专利技术的目的是提供。本专利技术的目的是按以下方式实现的,采用Oracle分区策略,以提高数据查询速度,,Oracle提供的分区方式有Range、List、Hash以及上述几种方法的组合,根据电信网络数据的特点,每天都会有性能数据产生,所以按照日期进行Range分区是首选,然后将不同周期的日期分区划分在不同的物理磁盘上; 在电信领域,网元是根据地区来进行划分的,在时间上划分分区之后,根据网元所属的地区不同按地区再进行Oracle子分区,这样在时间和空间两个维度上进行分区之后,要定位一个网元实体在某个时间点的数据就非常简单了; 具体优化方法如下 在数据库中建立多个数据表空间,将表分区分散在各个表空间中,然后将表空间的数据文件分散在不同的磁盘上,这样就保证了各个分区的数据分散在各个磁盘上,查询数据只从特定的表分区中查询,保证并发时可以从各个磁盘上获取数据,平衡了 1/0的吞吐,具体sql如下 Create table INDICAT0R_20000 ( MOENTITYIDVARCHAR2(128), STARTDAYNUMBER(8) not null, STARTTIMENUMBER(6) not null, PERIODNUMBER not null, BHIDVARCHAR2(1200),INSTAN CEIDNUMBER(2),INDICAT0R_20000_001 NUMBER,INDICAT0R_20000_002 NUMBER,INDICAT0R_20000_003 NUMBER,INDICAT0R_20000_004 NUMBER,INDICAT0R_20000_005 NUMBER,INDICAT0R_20000_006 NUMBER,INDICAT0R_20000_007 NUMBER,INDICAT0R_20000_008 NUMBER,INDICAT0R_20000_009 NUMBER,INDICAT0R_20000_010 NUMBER)partition by range (startday) subpartition by list (moentityid)(partition p_20000_20110816 values less than (20110817)(subpartition p_20000_20110816_rl values (,mol,),subpartition p_20000_20110816_r2 values (default)))tablespace tabspacel ; 通过以上sql,建立了在tabspacel表空间的表INDICAT0R_20000,这个表是通过日期进行Range分区,然后在每个分区中根据地区来区分子分区,首先使分区分散在不同的表空间内,然后根据时间和空间来逐级缩小查询范围,以提高查询速度。本法明的有益效果是采用本文档的Oracle存储策略,可以有效地在大数据量情况下提高查询速度,节约成本,使系统性能得到大幅度提升。可以对于Oracle大数据量存储的优化方案。支持大数据量的存储。提高大数据量环境下的数据查询速度。提高数据存储安全性。为了解决这个问题,就需要在系统并行访问的情况下平衡1/0,这样就需要将一个表划分开。如果多个程序并行访问数据不是指向的同一个分区,可以把这些分区划分到不同的物理磁盘上。放在不同的磁盘上,可以有效降低磁盘1/0冲突,由以前的单通道传输数据,变成多通道传输,最大发挥Oracle分区表的优势,此时磁盘的吞吐量就会成倍提升,如附图I所示。同时分区划分在不同的磁盘上,也可以保护数据的作用,如果有一块磁盘出了问题,也不会影响其他数据的访问,提高了数据的安全性。附图说明附图I为Oracle大数据量存储的优化示意图。具体实施例方式参照说明书附图对本专利技术的方法作以下详细地说明。Oracle本身提供了分区表的概念,就是用来将原本大数据量分散在不同的表分区中,这样查询的时候仅仅在分区中查询而不必对整个表进行查询。通过划分分区,可以将百万、千万级的数据量拆分成小部分,每次在一小部分中进行查询操作。但是,在有限的磁盘I/o情况下,多个程序在并行访问下系统1/0就会成为瓶颈。为了解决这个问题,就需要在系统并行访问的情况下平衡1/0,这样就需要将一个表划分开。如果多个程序并行访问数据不是指向的同一个分区,可以把这些分区划分到不同的物理磁盘上。放在不同的磁盘上,可以有效降低磁盘I/o冲突,由以前的单通道传输数据,变成多通道传输,最大发挥Oracle分区表的优势,此时磁盘的吞吐量就会成倍提升,如附图I所示。同时分区划分在不同的磁盘上,也可以保护数据的作用,如果有一块磁盘出了问题,也不会影响其他数据的访问,提高了数据的安全性。采用Oracle分区策略,可提高数据查询速度,需要采取好的分区策略。Oracle提供的分区方式有Range、List、Hash以及上述几种方法的组合等。根据电信网络数据的特点,每天都会有性能数据产生,所以按照日期进行Range分区是首选。然后可以将不同周期的日期分区划分在不同的物理磁盘上。比如数据在数据库中保存周期是I年,则可以将分区按季度划分在不同磁盘上;数据保存周期是I个月,则可以将分区按周划分在不同的磁 盘上等。此外,在电信领域,网元是可以根据地区来进行划分的。在时间上划分分区之后,可以根据网元所属的地区不同按地区再进行Oracle子分区。这样在时间和空间两个维度上进行分区之后,要定位一个网元实体在某个时间点的数据就非常简单了。在电信领域中,小区或载频级别的网元数据数据量很大,在基站数10000左右,小区可以达到30000-40000的数据量,如果按一天24小时60分钟粒度的数据来计算,每天就会有百万级别的数据需要存储,索引每天数据更新开销都比较大,如果不进行分区,数据查询速度会成为瓶颈。下面结合电信领域网络管理进行具体应用。可以在数据库中建立多个数据表空间,将表分区分散在各个表空间中,然后将表空间的数据文件分散在不同的磁盘上,这样就保证了各个分区的数据分散在各个磁盘上,查询数据只从特定的表分区中查询,保证并发时可以从各个磁盘上获取数据,平衡了 I/o的吞吐。具体sql如下 Create table INDICAT0R_20000 ( MOENTITYIDVARCHAR2(1本文档来自技高网...

【技术保护点】

【技术特征摘要】

【专利技术属性】
技术研发人员:张毅
申请(专利权)人:浪潮通信信息系统有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1