`

大型ORACLE数据库优化设计方案之二

 
阅读更多

四、合理设计和管理表
1、利用表分区
    分区将数据在物理上分隔开,不同分区的数据可以制定保存在处于不同磁盘上的数据文件里。这样,当对这个表进行查询时,只需要在表分区中进行扫描,而不必进行FTS(Full Table Scan,全表扫描),明显缩短了查询时间,另外处于不同磁盘的分区也将对这个表的数据传输分散在不同的磁盘I/O,一个精心设置的分区可以将数据传输对磁盘I/O竞争均匀地分散开。
2、避免出现行连接和行迁移
  在建立表时,由于参数pctfree和pctused不正确的设置,数据块中的数据会出现行链接和行迁移,也就是同一行的数据不保存在同一的数据块中。如果在进行数据查询时遇到了这些数据,那么为了读出这些数据,磁头必须重新定位,这样势必会大大降低数据库执行的速度。因此,在创建表时,就应该充分估计到将来可能出现的数据变化,正确地设置这两个参数,尽量减少数据库中出现行链接和行迁移。
3、控制碎片
  碎片(fragmentation)是对一组非邻接的数据库对象的描述。碎片意味着在执行数据库的功能时要耗费额外的资源(磁盘I/O,磁盘驱动的循环延迟,动态扩展,链接的块等),并浪费大量磁盘空间。当两个或多个数据对象在相同的表空间中,会发生区间交叉。在动态增长中,对象的区间之间不再相互邻接。为了消除区间交叉将静态的或只有小增长的表放置在一个表空间中,而把动态增长的对象分别放在各自的表空间中。在create table、、create index、create tablespace、create cluster时,在storage子句中的参数的合理设置,可以减少碎片的产生。
4、别名的使用
  别名是大型数据库的应用技巧,就是表名、列名在查询中以一个字母为别名,查询速度要比建连接表快1.5倍。
5、回滚段的交替使用
  由于数据库配置对应用表具有相对静止的数据字典和极高的事务率特点。而且数据库的系统索引段、数据段也具有相对静止,并发现在应用中最高的负荷是回滚段表空间。把回滚段定义为交替引用,这样就达到了循环分配事务对应的回滚段,可以使磁盘负荷很均匀地分布。
五、索引Index的优化设计
1、管理组织索引
            索引可以大大加快数据库的查询速度,索引把表中的逻辑值映射到安全的RowID,因此索引能进行快速定位数据的物理地址。但是有些DBA发现,对一个大型表建立的索引,并不能改善数据查询速度,反而会影响整个数据库的性能。这主要是和SGA的数据管理方式有关。ORACLE在进行数据块高速缓存管理时,索引数据比普通数据具有更高的驻留权限,在进行空间竞争时,ORACLE会先移出普通数据。对一个建有索引的大型表的查询时,索引数据可能会用完所有的数据块缓存空间,ORACLE不得不频繁地进行磁盘读写来获取数据,因此在对一个大型表进行分区之后,可以根据相应的分区建立分区索引。如果对这样大型表的数据查询比较频繁,或者干脆不建索引。另外,DBA创建索引时,应尽量保证该索引最可能地被用于where子句中,如果对查询只简单地制定一个索引,并不一定会加快速度,因为索引必须指定一个适合所需的访问路径。2、聚簇的使用
  Oracle提供了另一种方法来提高查询速度,就是聚簇(Cluster)。所谓聚簇,简单地说就是把几个表放在一起,按一定公共属性混合存放。聚簇根据共同码值将多个表的数据存储在同一个Oracle块中,这时检索一组Oracle块就同时得到两个表的数据,这样就可以减少需要存储的Oracle块,从而提高应用程序的性能。
3、优化设置的索引,就必须充分利用才能加快数据库访问速度。ORACLE要使用一个索引,有一些最基本的条件:1)、where子名中的这个字段,必须是复合索引的第一个字段;2)、where子名中的这个字段,不应该参与任何形式的计算。  Sal*(2*90/100)
六、多CPU和并行查询PQO(Parallel Query Option)方式的利用
1、尽量利用多个CPU处理器来执行事务处理和查询
  CPU的快速发展使得ORACLE越来越重视对多CPU的并行技术的应用,一个数据库的访问工作可以用多个CPU相互配合来完成,加上分布式计算已经相当普遍,只要可能,应该将数据库服务器和应用程序的CPU请求分开,或将CPU请求从一个服务器移到另一个服务器。对于多CPU系统尽量采用Parallel Query Option(PQO,并行查询选项)方式进行数据库操作。
2、使用Parallel Query Option(PQO,并行查询选择)方式进行数据查询
  使用PQO方式不仅可以在多个CPU间分配SQL语句的请求处理,当所查询的数据处于不同的磁盘时,一个个独立的进程可以同时进行数据读取。
3、使用SQL*Loader Direct Path选项进行大量数据装载
  使用该方法进行数据装载时,程序创建格式化数据块直接写入数据文件中,不要求数据库内核的其他I/O。
七、实施系统资源管理分配计划
    ORACLE提供了Database Resource Manager(DRM,数据库资源管理器)来控制用户的资源分配,DBA可以用它分配用户类和作业类的系统资源百分比。在一个OLDP系统中,可给联机用户分配75%的CPU资源,剩下的25%留给批用户。另外,还可以进行CPU的多级分配。除了进行CPU资源分配外,DRM还可以对资源用户组执行并行操作的限制。
八、使用最和SQL优化方优的数据库连接案
1、使用直接的OLE DB数据库连接方式。
  通过ADO可以使用两种方式连接数据库,一种是传统的ODBC方式,一种是OLE DB方式。ADO是建立在OLE DB技术上的,为了支持ODBC,必须建立相应的OLE DB到ODBC的调用转换,而使用直接的OLE DB方式则不需转换,从而提高处理速度。
2、使用Connection Pool机制
  在数据库处理中,资源花销最大的是建立数据库连接,而且用户还会有一个较长的连接等待时间。解决的办法就是复用现有的Connection,也就是使用Connection Pool对象机制。
  Connection Pool的原理是:IIS+ASP体系中维持了一个连接缓冲池,这样,当下一个用户访问时,直接在连接缓冲池中取得一个数据库连接,而不需重新连接数据库,因此可以大大地提高系统的响应速度。
3、高效地进行SQL语句设计
  通常情况下,可以采用下面的方法优化SQL对数据操作的表现:
    (1)减少对数据库的查询次数,即减少对系统资源的请求,使用快照和显形图等分布式数据库对象可以减少对数据库的查询次数。
    (2)尽量使用相同的或非常类似的SQL语句进行查询,这样不仅充分利用SQL共享池中的已经分析的语法树,要查询的数据在SGA中命中的可能性也会大大增加。
    (3)限制动态SQL的使用,虽然动态SQL很好用,但是即使在SQL共享池中有一个完全相同的查询值,动态SQL也会重新进行语法分析。
    (4)避免不带任何条件的SQL语句的执行。没有任何条件的SQL语句在执行时,通常要进行FTS,数据库先定位一个数据块,然后按顺序依次查找其它数据,对于大型表这将是一个漫长的过程。
    (5)如果对有些表中的数据有约束,最好在建表的SQL语句用描述完整性来实现,而不是用SQL程序中实现。
    (6)可以通过取消自动提交模式,将SQL语句汇集一组执行后集中提交,程序还可以通过显式地用COMMIT和ROLLBACL进行提交和回滚该事务。
    (7)检索大量数据时费时很长,设置行预取数则能改善系统的工作表现,设置一个最大值,当SQL语句返回行超过该值,数值库暂时停止执行,除非用户发出新的指令,开始组织并显示数据,而不是让用户继续等待。

分享到:
评论

相关推荐

    大型ORACLE数据库优化设计方案

    ### 大型Oracle数据库优化设计方案解析 在当今数据驱动的时代,高效、稳定且优化的数据库系统对于企业运营至关重要。尤其对于大型Oracle数据库,其优化设计不仅关乎数据处理速度,更直接影响到业务连续性和用户体验...

    大型ORACLE数据库优化设计方案.pdf

    "大型ORACLE数据库优化设计方案" 本文主要从大型数据库ORACLE环境四个不同级别的调整分析入手,分析ORACLE的系统结构和工作机理,从九个不同方面较全面地总结了ORACLE数据库的优化调整方案。 一、数据库优化自由...

    大型ORACLE数据库优化设计方案.doc

    【大型ORACLE数据库优化设计方案】 Oracle数据库作为一款广泛使用的大型企业级数据库系统,其性能优化是确保系统稳定高效运行的关键。本方案主要针对ORACLE数据库的优化策略进行深入探讨,涵盖了从操作系统层面到...

    漫谈ORACLE数据库优化设计方案.pdf

    Oracle数据库优化设计方案是一个复杂而全面的过程,涉及到数据库的多个层面,包括硬件配置、数据库结构、内存管理、数据规范与反规范、索引设计以及并行处理等。以下是对这些方面的详细解析: 1. **科学配置逻辑...

    大型数据库ORACLE数据库的优化设计方案 (1).pdf

    大型数据库ORACLE数据库的优化设计方案 (1).pdf

    大型ORACLE数据库系统的优化设计方案.pdf

    【Oracle数据库系统优化设计方案】 Oracle数据库系统作为关系型数据库的代表,因其高性能、高扩展性和数据安全性,在信息化时代被广泛应用。然而,随着数据库系统运行时间的增长,可能会出现性能下降的问题,这时就...

    大型数据库ORACLE数据库的优化设计方案.pdf

    【Oracle数据库优化设计】 Oracle数据库作为一款广泛应用的关系型数据库管理系统,其优化设计对于提升系统性能至关重要。随着信息技术的发展,Oracle数据库系统的复杂性不断提高,优化的需求也随之增加。本文将围绕...

    大型ORACLE数据库系统的优化设计方案 (2).pdf

    本文将深入探讨Oracle数据库系统的优化设计方案,重点关注四个不同级别的调整:操作系统级、Oracle关系管理系统级、数据库系统设计级和SQL查询分析级。 1. 操作系统级优化 Oracle数据库的性能受到底层硬件平台和...

    Oracle数据库优化策略

    综上所述,Oracle数据库优化是一个涉及多方面因素的综合工程,需要从数据库设计、SQL优化、配置调整、维护策略等多个角度进行深入研究和实践,才能充分发挥Oracle的潜力,为企业带来更高的数据处理效率。通过不断的...

    大型ORACLE数据库系统的优化设计方案 (1).pdf

    大型ORACLE数据库系统的优化设计方案 (1).pdf

    Oracle数据库大作业

    【Oracle数据库大作业】是一个关于Oracle数据库在教务管理系统中的应用项目,可能涵盖了数据库设计、实施、优化等多个方面的内容。这个大作业包含了PPT演示文稿、Word文档以及可能的源代码,为学习者提供了全面了解...

    超大型Oracle数据库的基础设计和优化设计.pdf

    在设计超大型Oracle数据库时,必须综合考虑这些因素,结合业务需求和硬件资源,制定出既能满足当前需求又能适应未来发展的设计方案。同时,持续监控和调整数据库性能,确保其始终处于最佳状态,是运维工作的重要组成...

    浅谈超大型Oracle数据库的基础设计和优化设计.pdf

    因此,本文重点讨论了超大型Oracle数据库的基础设计和优化设计,旨在帮助用户更好地理解和应用Oracle数据库。 首先,我们来分析Oracle的逻辑结构和程序结构。Oracle的逻辑结构主要由存储单元和数据库对象组成。存储...

    产销系统后台Oracle数据库优化设计与实现.pdf

    【Oracle数据库优化设计与实现】 在企业信息化进程中,Oracle数据库作为主流的关系型数据库管理系统,广泛应用于各类业务系统,包括产销系统。然而,随着业务数据量的急剧增长,系统响应速度变慢、占用资源过多的...

    ORACLE优化设计方案

    Oracle优化设计方案旨在提升数据库性能,确保数据安全,便于管理和开发。设计Oracle数据库时,需要遵循一系列基本原则和步骤。 首先,逻辑建模是根据系统需求分析数据间的内在和外在关系,构建整个系统的数据结构。...

    Oracle数据库课程设计报告学生成绩管理系统.rar

    在“Oracle数据库课程设计报告学生成绩管理系统”中,我们可以深入探讨Oracle数据库如何应用于构建一个成绩管理系统,这将涵盖以下几个关键知识点: 1. **Oracle数据库介绍**:Oracle数据库是一款关系型数据库管理...

Global site tag (gtag.js) - Google Analytics