`
征途2010
  • 浏览: 244308 次
  • 性别: Icon_minigender_1
  • 来自: 深圳
社区版块
存档分类
最新评论

oracle数据库数据量增大的优化措施。

阅读更多

oracle数据库数据量增大的优化措施。

1、硬件优化

2、数据库表分区(范围分区,散列分区,列表分区和复合分区。

3、分表

4、索引优化

对海量的数据处理,对大表建立索引是必行的,建立索引要考虑到具体情况,例如针对大表的分组、排序等字段,都要建立相应索引,一般还可以建立复合索引,对经常插入的表则建立索引时要小心,笔者在处理数据时,曾经在一个ETL流程中,当插入表时,首先删除索引,然后插入完毕,建立索引,并实施聚合操作,聚合完成后,再次插入前还是删除索引,所以索引要用到好的时机,索引的填充因子和聚集、非聚集索引都要考虑。

5、建立缓存机制

当数据量增加时,一般的处理工具都要考虑到缓存问题。缓存大小设置的好差也关系到数据处理的成败,例如,笔者在处理2亿条数据聚合操作时,缓存设置为100000/Buffer,这对于这个级别的数据量是可行的。

6、加大虚拟内存

如果系统资源有限,内存提示不足,则可以靠增加虚拟内存来解决。笔者在实际项目中曾经遇到针对18亿条的数据进行处理,内存为1GB1P4 2.4GCPU,对这么大的数据量进行聚合操作是有问题的,提示内存不足,那么采用了加大虚拟内存的方法来解决,在6块磁盘分区上分别建立了64096M的磁盘分区,用于虚拟内存,这样虚拟的内存则增加为 4096*6 + 1024 = 25600 M,解决了数据处理中的内存不足问题。

7、分批处理

海量数据处理难因为数据量大,那么解决海量数据处理难的问题其中一个技巧是减少数据量。可以对海量数据分批处理,然后处理后的数据再进行合并操作,这样逐个击破,有利于小数据量的处理,不至于面对大数据量带来的问题,不过这种方法也要因时因势进行,如果不允许拆分数据,还需要另想办法。不过一般的数据按天、按月、按年等存储的,都可以采用先分后合的方法,对数据进行分开处理。

8、使用临时表和中间表

数据量增加时,处理中要考虑提前汇总。这样做的目的是化整为零,大表变小表,分块处理完成后,再利用一定的规则进行合并,处理过程中的临时表的使用和中间结果的保存都非常重要,如果对于超海量的数据,大表处理不了,只能拆分为多个小表。如果处理过程中需要多步汇总操作,可按汇总步骤一步步来,不要一条语句完成,一口气吃掉一个胖子。

9、优化查询SQL语句

在对海量数据进行查询处理过程中,查询的SQL语句的性能对查询效率的影响是非常大的,编写高效优良的SQL脚本和存储过程是数据库工作人员的职责,也是检验数据库工作人员水平的一个标准,在对SQL语句的编写过程中,例如减少关联,少用或不用游标,设计好高效的数据库表结构等都十分必要。笔者在工作中试着对1亿行的数据使用游标,运行3个小时没有出结果,这是一定要改用程序处理了。

10、使用文本格式进行处理

对一般的数据处理可以使用数据库,如果对复杂的数据处理,必须借助程序,那么在程序操作数据库和程序操作文本之间选择,是一定要选择程序操作文本的,原因为:程序操作文本速度快;对文本进行处理不容易出错;文本的存储不受限制等。例如一般的海量的网络日志都是文本格式或者csv格式(文本格式),对它进行处理牵扯到数据清洗,是要利用程序进行处理的,而不建议导入数据库再做清洗。

 

 

 

 

 

分享到:
评论

相关推荐

    oracle数据库系统调优方法

    核心提示:Oracle 数据库广泛应用在社会的各个领域,特别是在Client/Server模式的应用,但是应用开发者往往碰到整个系统的性能随着数据量的增大显着下降的问题 Oracle 数据库广泛应用在社会的各个领域,特别是在...

    详解Oracle数据库优化方案与实践

    随着实际项目的启动,实际项目中使用的 Oracle数据库经过一段时间的运行,在线保存的数据量和业务处理的数据量在逐渐增大,最初的Oracle设置,与现在实际需要的运行性能有一定差距,需要进行一些优化调整。

    ORACLE数据库基础知识-华为维护资料

    第1章 ORACLE数据库基础知识 1 1.1 产品概述 1 1.1.1 产品简介 1 1.1.2 基本概念 1 1.2 ORACLE系统结构 2 1.2.1 ORACLE物理结构 2 1.2.2 系统全局区 4 1.2.3 进程 6 1.3 存储管理 7 1.3.1 逻辑结构 8 1.3.2 表...

    调整Oracle应用系统性能的原则和方法

    Oracle 数据库广泛应用在社会的各个领域,特别是在Client/Server模式的应用,但是应用开发者往往碰到整个系统的性能随着数据量的增大显著下降的问 题,为了解决这个问题,从以下几个方面:数据库服务器、网络I/O、...

    Oracle基于Client/Server的性能调整

    Oracle 数据库广泛应用在社会的各个领域,特别是在Client/Server模式的应用,但是应用开发者往往碰到整个系统的性能随着数据量的增大显著下降的问题,为了解决这个问题,从以下几个方面:数据库服务器、网络I/O、...

    Oracle 面试题及答案 面试常见的问题及回答 doc 数据库 db question 问题汇总

    本文总结了 Oracle 面试题及答案,涵盖了数据库备份、恢复、性能优化、数据库设计、索引、约束、视图、错误处理等方面的知识点。 数据库备份和恢复 * 冷备份和热备份的不同点:热备份针对归档模式的数据库,在...

    怎么架构生产数据库--生产数据库优化的一种方式

    核心数据库承载着核心业务,很多其他系统、接口以及第三方系统等围绕着核心业务,要么直接连接该核心数据库要么通过其他方式与核心数据库交互,进而导致核心数据库数据量增大,连接数和并发量增多,整体数据库的性能...

    oracle表空间详解

    由于 Oracle 数据库可以存储大量的数据,但是数据文件大小受操作系统的限制,而过大的数据文件对数据的存取性能影响非常大。因此,Oracle 引入了表空间的概念,以解决存储空间的管理问题。 Oracle 表空间是指一个...

    Oracle 管道 解决Exp/Imp大量数据处理问题

    先由exp把数据卸出到文件系统, 产生一个.dmp文件, 然后必要时再由imp将数据装入数据库. 对于一般中小型数据库来说, 全数据库的exp所产生的dmp文件可能小于2GB, 但对稍大型的数据库, exp产生的数据动辄数十至上百个GB...

    数据库系统由哪几部分组成(3).docx

    在它之前的文件系统虽然也能处理持久数据,但是文件系统不提供对任意部分数据的快速访问,而这对数据量不断增大的应用来说是至关重要的。为了实现对任意部分数据的快速访问,就要研究许多优化技术。这些优化技术...

    oracle学习文档 笔记 全面 深刻 详细 通俗易懂 doc word格式 清晰 连接字符串

    Access 微软 Access是一种桌面数据库,只适合数据量少的应用,在处理少量 数据和单机访问的数据库时是很好的,效率也很高 小型企业 三、 Oracle数据库概述 ORACLE数据库系统是美国ORACLE公司(甲骨文)提供的以...

    数据库系统的核心是什么(1).docx

    在它之前的文件系统虽然也能处理持久数据,但是文件系统不提供对任意部分数据的快速访问,而这对数据量不断增大的应用来说是至关重要的。为了实现对任意部分数据的快速访问,就要研究许多优化技术。这些优化技术往往...

    数据库系统的核心.doc

    在它之前的文件系统虽然也能处理持久数据,但是文件系统不提供对任意部分数据的 快速访问,而这对数据量不断增大的应用来说是至关重要的。为了实现对任意部分数据 的快速访问,就要研究许多优化技术。这些优化技术...

    数据库调优方案

    Oracle 数据库广泛应用在社会的各个领域,特别是在Client/Server模式的应用,但是应用开发者往往碰到整个系统的性能随着数据量的增大显着下降的问题,为了解决这个问题,从以下几个方面:数据库服务器、网络I/O、...

    软件体系结构案例-电商数据库-.pptx

    * 将三个月之前的老数据迁移到其他库中,避免了数据量增大导致的系统响应时间降低的问题。 7. 可扩展性 淘宝的电商平台数据库架构具有很好的可扩展性,可以通过增加服务器来提高系统的处理能力。同时,淘宝也使用了...

    oracle详解

    当需要exp/imp的数据量比较大时,这个过程需要的时间是比较长的,我们可以用一些方法来优化exp/imp的操作。 exp:使用直接路径 direct=y oracle会避开sql语句处理引擎,直接从数据库文件中读取数据,然后写入导出文件....

    Oracle9i的init.ora参数中文说明

    Oracle9i初始化参数中文说明 Blank_trimming: 说明: 如果值为TRUE, 即使源长度比目标长度 (SQL92 兼容) 更长, 也允许分配数据。 值范围: TRUE | FALSE 默认值: FALSE serializable: 说明: 确定查询是否获取表级...

    oracle表空间表分区详解及oracle表分区查询使用方法

    分区表: 当表中的数据量不断增大,查询数据的速度就会变慢,应用程序的性能就会下降,这时就应该考虑对表进行分区。表进行分区后,逻辑上表仍然是一张完整的表,只是将表中的数据在物理上存放到多个表空间(物理文件...

    SQLserver数据库管理系统需求分析.doc

    学生成绩管理系统是应对学生人数增多、信息量增大的问题,实现管 理的现代化、网络化,逐步摆脱当前学生成绩管理系统的人工管理方式,提高成绩管理 效率而开发的。希望该程序能够解决学生信息存储、学生成绩查询、...

    MySQL优化之表结构优化的5大建议(数据类型选择讲的很好)

    殊不知,在N年前被奉为“圣经”的数据库设计3范式早就已经不完全适用了。这里我整理了一些比较常见的数据库表...此外,由于我们的内存是有限的,增加每个page中存放的数据行数,就等于增加每个内存块的缓存数据量,同

Global site tag (gtag.js) - Google Analytics