大型ORACLE数据库优化设计方案
读趣百科>范文>公文写作>企划文案

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

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

关键词ORACLE数据库环境调整优化设计方案

对于ORACLE数据库的数据存取,主要有四个不同的调整级别,第一级调整是操作系统级包括硬件平台,第二级调整是ORACLERDBMS级的调整,第三级是数据库设计级的调整,最后一个调整级是SQL级。通常依此四级调整级别对数据库进行调整、优化,数据库的整体性能会得到很大的改善。下面从九个不同方面介绍ORACLE数据库优化设计方案。

一.数据库优化自由结构OFA(OptimalflexibleArchitecture)

数据库的逻辑配置对数据库性能有很大的影响,为此,ORACLE公司对表空间设计提出了一种优化结构OFA。使用这种结构进行设计会大大简化物理设计中的数据管理。优化自由结构OFA,简单地讲就是在数据库中可以高效自由地分布逻辑数据对象,因此首先要对数据库中的逻辑对象根据他们的使用方式和物理结构对数据库的影响来进行分类,这种分类包括将系统数据和用户数据分开、一般数据和索引数据分开、低活动表和高活动表分开等等。

二、充分利用系统全局区域SGA(SYSTEMGLOBALAREA)

SGA是oracle数据库的心脏。用户的进程对这个内存区发送事务,并且以这里作为高速缓存读取命中的数据,以实现加速的目的。正确的SGA大小对数据库的性能至关重要。SGA包括以下几个部分:

2、字典缓冲区。该缓冲区内的信息包括用户账号数据、数据文件名、段名、盘区位置、表说明和权限,它也采用LRU方式管理。

3、重做日志缓冲区。该缓冲区保存为数据库恢复过程中用于前滚操作。

4、SQL共享池。保存执行计划和运行数据库的SQL语句的语法分析树。也采用LRU算法管理。如果设置过小,语句将被连续不断地再装入到库缓存,影响系统性能。

另外,SGA还包括大池、JAVA池、多缓冲池。但是主要是由上面4种缓冲区构成。对这些内存缓冲区的合理设置,可以大大加快数据查询速度,一个足够大的内存区可以把绝大多数数据存储在内存中,只有那些不怎么频繁使用的数据,才从磁盘读取,这样就可以大大提高内存区的命中率。三、规范与反规范设计数据库

1、规范化

2、反规范化

⑴反规范的必要性

是否规范化的程度越高越好呢?答案是否定的,应根据实际需要来决定,因为“分离”越深,产生的关系越多,结构越复杂。关系越多,连接操作越频繁,而连接操作是最费时间的,在数据库设计中特别对以查询为主的数据库设计来说,频繁的连接会严重影响查询速度。所以,在数据库的设计过程中有时故意保留非规范化约束,或者规范化以后又反规范,这样做通常是为了改进数据库的查询性能,加快数据库系统的响应速度。

⑵反规范技术

在进行反规范设计之前,要充分考虑数据的存取需求,常用表的大小、特殊的计算、数据的物理存储等。常用的反规范技术有合理增加冗余列、派生列,或重新组表几种。反规范化的好处是降低连接操作的需求、降低外码和索引数目,减少表的个数,从而提高查询速度,这对于性能要求相对较高的数据库系统来说,能有效地改善系统的性能,但相应的问题是可能影响数据的完整性,加快查询速度的同时降低修改速度。

3、数据库设计中的优化策略

数据应当按两种类别进行组织:频繁访问的数据和频繁修改的数据。对于频繁访问但是不频繁修改的数据,内部设计应当物理不规范化。对于频繁修改但并不频繁访问的数据,内部设计应当物理规范化。比较复杂的方法是将规范化的表作为逻辑数据库设计的基础,然后再根据整个应用系统的需要,物理地非规范化数据。规范与反规范都是建立在实际的操作基础之上的约束,脱离了实际两者都没有意义。只有把两者合理地结合在一起,才能相互补充,发挥各自的优点。四、合理设计和管理表

1、利用表分区

分区将数据在物理上分隔开,不同分区的数据可以制定保存在处于不同磁盘上的数据文件里。这样,当对这个表进行查询时,只需要在表分区中进行扫描,而不必进行FTS(FullTableScan,全表扫描),明显缩短了查询时间,另外处于不同磁盘的分区也将对这个表的数据传输分散在不同的磁盘I/O,一个精心设置的分区可以将数据传输对磁盘I/O竞争均匀地分散开。

2、避免出现行连接和行迁移

在建立表时,由于参数pctfree和pctused不正确的设置,数据块中的数据会出现行链接和行迁移,也就是同一行的数据不保存在同一的数据块中。如果在进行数据查询时遇到了这些数据,那么为了读出这些数据,磁头必须重新定位,这样势必会大大降低数据库执行的速度。因此,在创建表时,就应该充分估计到将来可能出现的数据变化,正确地设置这两个参数,尽量减少数据库中出现行链接和行迁移。

3、控制碎片

碎片(fragmentation)是对一组非邻接的数据库对象的描述。碎片意味着在执行数据库的功能时要耗费额外的资源(磁盘I/O,磁盘驱动的循环延迟,动态扩展,链接的块等),并浪费大量磁盘空间。当两个或多个数据对象在相同的表空间中,会发生区间交叉。在动态增长中,对象的区间之间不再相互邻接。为了消除区间交叉将静态的或只有小增长的表放置在一个表空间中,而把动态增长的对象分别放在各自的表空间中。在createtable、、createindex、createtablespace、createcluster时,在storage子句中的参数的合理设置,可以减少碎片的产生。

4、别名的使用

别名是大型数据库的应用技巧,就是表名、列名在查询中以一个字母为别

名,查询速度要比建连接表快1.5倍。

5、回滚段的交替使用

由于数据库配置对应用表具有相对静止的数据字典和极高的事务率特点。而且数据库的系统索引段、数据段也具有相对静止,并发现在应用中最高的负荷是回滚段表空间。把回滚段定义为交替引用,这样就达到了循环分配事务对应的回滚段,可以使磁盘负荷很均匀地分布。

五、索引Index的优化设计

1、管理组织索引

索引可以大大加快数据库的查询速度,索引把表中的逻辑值映射到安全的RowID,因此索引能进行快速定位数据的物理地址。但是有些DBA发现,对一个大型表建立的索引,并不能改善数据查询速度,反而会影响整个数据库的性能。这主要是和SGA的数据管理方式有关。ORACLE在进行数据块高速缓存管理时,索引数据比普通数据具有更高的驻留权限,在进行空间竞争时,ORACLE会先移出普通数据。对一个建有索引的大型表的查询时,索引数据可能会用完所有的数据块缓存空间,ORACLE不得不频繁地进行磁盘读写来获取数据,因此在对一个大型表进行分区之后,可以根据相应的分区建立分区索引。如果对这样大型表的数据查询比较频繁,或者干脆不建索引。另外,DBA创建索引时,应尽量保证该索引最可能地被用于where子句中,如果对查询只简单地制定一个索引,并不一定会加快速度,因为索引必须指定一个适合所需的访问路径

2、聚簇的使用

Oracle提供了另一种方法来提高查询速度,就是聚簇(Cluster)。所谓聚簇,简单地说就是把几个表放在一起,按一定公共属性混合存放。聚簇根据共同码值将多个表的数据存储在同一个Oracle块中,这时检索一组Oracle块就同时得到两个表的数据,这样就可以减少需要存储的Oracle块,从而提高应用程序的性能。六、多CPU和并行查询PQO(ParallelQueryOption)方式的利用

1、尽量利用多个CPU处理器来执行事务处理和查询

CPU的快速发展使得ORACLE越来越重视对多CPU的并行技术的应用,一个数据库的访问工作可以用多个CPU相互配合来完成,加上分布式计算已经相当普遍,只要可能,应该将数据库服务器和应用程序的CPU请求分开,或将CPU请求从一个服务器移到另一个服务器。对于多CPU系统尽量采用ParallelQueryOption(PQO,并行查询选项)方式进行数据库操作。

2、使用ParallelQueryOption(PQO,并行查询选择)方式进行数据查询

使用PQO方式不仅可以在多个CPU间分配SQL语句的请求处理,当所查询的数据处于不同的磁盘时,一个个独立的进程可以同时进行数据读取。

3、使用SQL*LoaderDirectPath选项进行大量数据装载

使用该方法进行数据装载时,程序创建格式化数据块直接写入数据文件中,不要求数据库内核的其他I/O。七、实施系统资源管理分配计划

ORACLE提供了DatabaseResourceManager(DRM,数据库资源管理器)来控制用户的资源分配,DBA可以用它分配用户类和作业类的系统资源百分比。在一个OLDP系统中,可给联机用户分配75%的CPU资源,剩下的25%留给批用户。另外,还可以进行CPU的多级分配。除了进行CPU资源分配外,DRM还可以对资源用户组执行并行操作的限制。八、使用最优的数据库连接和SQL优化方案

1、使用直接的OLEDB数据库连接方式。

通过ADO可以使用两种方式连接数据库,一种是传统的ODBC方式,一种是OLEDB方式。ADO是建立在OLEDB技术上的,为了支持ODBC,必须建立相应的OLEDB到ODBC的调用转换,而使用直接的OLEDB方式则不需转换,从而提高处理速度。

2、使用ConnectionPool机制

在数据库处理中,资源花销最大的是建立数据库连接,而且用户还会有一个较长的连接等待时间。解决的办法就是复用现有的Connection,也就是使用ConnectionPool对象机制。

ConnectionPool的原理是: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语句返回行超过该值,数值库暂时停止执行,除非用户发出新的指令,开始组织并显示数据,而不是让用户继续等待。九、充分利用数据的后台处理方案减少网络流量

1、合理创建临时表或视图

所谓创建临时表或视图,就是根据需要在数据库基础上创建新表或视图,对于多表关联后再查询信息的可建新表,对于单表查询的可创建视图,这样可充分利用数据库的容量大、可扩充性强等特点,所有条件的判断、数值计算统计均可在数据库服务器后台统一处理后追加到临时表中,形成数据结果的过程可用数据库的过程或函数来实现。

2、数据库打包技术的充分利用

利用数据库描述语言编写数据库的过程或函数,然后把过程或函数打成包在数据库后台统一运行包即可。

3、数据复制、快照、视图,远程过程调用技术的运用

数据复制,即将数据一次复制到本地,这样以后的查询就使用本地数据,但是只适合那些变化不大的数据。使用快照也可以在分布式数据库之间动态复制数据,定义快照的自动刷新时间或手工刷新,以保证数据的引用参照完整性。调用远程过程也会大大减少因频繁的SQL语句调用而带来的网络拥挤。

总之,对所有的性能问题,没有一个统一的解决方法,但ORACLE提供了丰富的选择环境,

可以从ORACLE数据库的体系结构、软件结构、模式对象以及具体的业务和技术实现出发,进行统筹考虑。提高系统性能需要一种系统的整体的方法,在对数据库进行优化时,应对应用程序、I/O子系统和操作系统(OS)进行相应的优化。优化是有目的地更改系统的一个或多个组件,使其满足一个或多个目标的过程。对Oracle来说,优化是进行有目的的调整组件级以改善性能,即增加吞吐量,减少响应时间。如果DBA能从上述九个方面综合考虑优化方案,相信多数ORACLE应用可以做到按最优的方式来存取数据。

参考文献

1、[美]JoeGreene,AdvancedInformationSystems,Inc.etal.Oracle8服务器技术精粹[M].清华大学出版社,1999

2、瓮正科王新英Oracle8.XForWindowsNT实用教程[M].清华大学出版社,1999

3、KevinLoney.Oracle8i数据库管理员手册[M].机械工业出版社,2000

4、周渝斌基于ORACLE8i的大型数据库技术讲座之一数据库优化篇[J].电脑编程技巧与维护,2002,(4):5—

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

更多企划文案范文

县健康会所中心机构建立方案

一、中心管理规程(一)宗旨维护健康、追求美丽、提升生活质量是绵阳市整形美容医院健康咨询管理中心永远的追求和发展理念!这里汇集了最权威、最着名的医学专家、保健医生...
展开详情

4月23日世界读书日活动打算

“书香满校园”世界读书日活动策划书一、 活动名称风飘书香满校园二、 活动背景当今时代,信息潮涌而来,种种现代传播媒体在拓展人们视野的同时...
展开详情

春节晚会策划方案

关键字:春节春节晚会策划方案一、活动主旨:放松心情、全员参与,过一个祥和、快乐的春节二、活动内容:活动分两大版块(一)公司聚餐(二)内勤联欢会三、组织:四、时间...
展开详情

五关五廉专项教育活动安排

为进一步加强对党员领导干部廉洁从政情况的监督和管理,强化党员领导干部廉洁从政、以人为本、执政为民的意识,根据有关文件精神,决定在全系统中开展“五关五...
展开详情

司法局公开选拔干部指导方案

根据《党政领导干部选拔任用工作条例》、《公开选拔党政领导干部工作暂行规定》、《党政机关竞争上岗工作暂行规定》和《区党政机关科级领导干部选拔任用工作意见》等有关规...
展开详情

清明节活动计划

4月6日睡醒吃饱喝足收拾完毕,如果天气好,可以继续周边活动至午饭后再回程,天气不好或大家都想回去,就早饭后开撤,继续包小面到怀柔汽车站坐916回京,各回各家,各...
展开详情

传输网络中问题及解决方案

摘要:主要从资源、保护和组网三个最重要的方面来评估该传输网络的现状。通过对现有网络情况的评估,发现存在的问题及解决方案。关键词:传输网络;问题;解决方案1传输网...
展开详情

学校中长期发展规划范文

一、指导思想认真贯彻落实党的十七大会议精神,为夺取全面建设小康社会的新胜利贡献力量。深入贯彻落实科学发展观,把理论创新和实践发展相结合。全面贯彻党的教育方针,积...
展开详情
热门推荐

中秋节企业放假通知模板 公司中秋节放假通知模板(汇总4篇)

随着社会的进一步发展,通知在生活中出现的频率也越来越高。有时上级领导会要求我们写中秋节放假通知,我们在写通知时一定要认真仔细,尤其是格式要正确。下面是小编为大家...
展开详情

公司中秋晚会策划

x年x月x日晚,我公司将在职工餐厅举办中秋联欢晚会,届时将有抽奖,互动游戏,文艺表演等节目,请大家积极参与,共度佳节。现将大家关心的几个事项公布如下:一,[抽奖...
展开详情

商场六一儿童节企划方案

一、活动目的1、通过在儿童节搞本次活动来提高卖场在少年儿童心目中的影响力。2、以家庭参赛的方式借助儿童节来提高成人的消费。3、以特殊的比赛形式来进一步提高卖场的...
展开详情

中学舞蹈队训练计划

舞蹈兴趣小组是学生非常乐于参与的一个兴趣小组,活动内容与教育性和艺术性相结合,适合学生的年龄特点,它有利于提高学生学习舞蹈的兴趣,培养孩子们正确的形体姿态和良好...
展开详情

治安工作谋划

根据县综治委《2011年全县社会治安综合治理工作要点》(金综治委[2011]1号)文件精神, 2011年城管系统社会治安综合治理工作要紧紧围绕县委“...
展开详情