欢迎来到天天文库
浏览记录
ID:8971075
大小:34.50 KB
页数:3页
时间:2018-04-13
《oracle数据库的优化设计》由会员上传分享,免费在线阅读,更多相关内容在应用文档-天天文库。
1、Oracle数据库的优化设计作者:王 莹 时间:2009-1-89:45:00 来源:论文天下论文网 [摘要]主要从大型数据库ORACLE环境四个不同级别的调整分析入手,分析ORACLE的系统结构和工作机理,从不同方面较全面地总结ORACLE数据库的优化调整方案。 [关键词]ORACLE数据库环境调整优化设计方案 中图分类号:TP3文献标识码:A文章编号:1671-7597(2008)0720043-01 ORACLE数据库中数据存取性能的改善,可以进行调整级别,第一级调整是操作系统级包括硬件平台,第二级调整是ORACLERDBMS级的调整,第三级是
2、数据库设计级的调整,最后一个调整级是SQL级。通常依此四级调整级别对数据库进行调整、优化,数据库的整体性能会得到很大的改善。 一、数据库优化自由结构OFA(OptimalflexibleArchitecture) 数据库的逻辑配置对数据库性能有很大的影响,为此,ORACLE公司对表空间设计提出了一种优化结构OFA。使用这种结构进行设计会大大简化物理设计中的数据管理。优化自由结构OFA,简单地讲就是在数据库中可以高效自由地分布逻辑数据对象,因此首先要对数据库中的逻辑对象根据他们的使用方式和物理结构对数据库的影响来进行分类,这种分类包括将系统数据和用户数据分开
3、、一般数据和索引数据分开、低活动表和高活动表分开等等。数据库逻辑设计的结果应当符合几个准则:把以同样方式使用的段类型存储在一起;按照标准使用来设计系统;存在用于例外的分离区域;最小化表空间冲突;将数据字典分离。 二、充分利用系统全局区域SGA(SYSTEMGLOBALAREA) SGA是Oracle数据库的心脏。用户的进程对这个内存区发送事务,并且以这里作为高速缓存读取命中的数据,以实 现加速的目的。正确的SGA大小对数据库的性能至关重要。SGA包括以下几个部分:一个是数据块缓冲区(datablockbuffercache)是SGA中的一块高速缓存,占整
4、个数据库大小的1%-2%,用来存储从数据库重读取的数据块(表、索引、簇等),因此采用leastrecentlyused(LRU,最近最少使用)的方法进行空间管理。一个是字典缓冲区。该缓冲区内的信息包括用户账号数据、数据文件名、段名、盘区位置、表说明和权限,它也采用LRU方式管理。一个是重做日志缓冲区。该缓冲区保存为数据库恢复过程中用于前滚操作。还有一个是SQL共享池。保存执行计划和运行数据库的SQL语句的语法分析树。也采用LRU算法管理。如果设置过小,语句将被连续不断地再装入到库缓存,影响系统性能。 三、规范与反规范设计数据库 第一,规范化。对于范式是符合
5、某一级别的关系模式的集合,根据约束条件的不同,一般有1NF、2NF、3NF三种范式。规范化理论是围绕这些范式而建立的。规范化的基本思想是逐步消除数据依赖中不合适的部分,使模式中的各关系模式达到某种程度的“分离”,即采用“一事一地”的模式设计原则,因此,所谓规范化实质上就是概念的单一化。数据库中数据规范化的优点是减少了数据冗余,节约了存储空间,相应逻辑和物理的I/O次数减少,同时加快了增、删、改的速度。但是一个完全规范化的设计并不总能生成最优的性能,因为对数据库查询通常需要更多的连接操作,从而影响到查询的速度。故有时为了提高某些查询或应用的性能而有意破坏规范规则,即反规
6、范化。 第二,反规范化。在数据库的设计过程中有时故意保留非规范化约束,或者规范化以后又反规范,这样做通常是为了改进数据库的查询性能,加快数据库系统的响应速度。反规范化的好处是降低连接操作的需求、降低外码和索引数目,减少表的个数,从而提高查询速度,这对于性能要求相对较高的数据库系统来说,能有效地改善系统的性能,但相应的问题是可能影响数据的完整性,加快查询速度的同时降低修改速度。 所以,规范与反规范都是建立在实际的操作基础之上的约束,脱离了实际两者都没有意义。只有把两者合理地结合在一起,才能相互补充,发挥各自的优点。 四、索引Index的优化设计 第一,管
7、理组织索引。索引可以大大加快数据库的查询速度,索引把表中的逻辑值映射到安全的RowID,因此索引能进行快速定位数据的物理地址。对一个建有索引的大型表的查询时,索引数据可能会用完所有的数据块缓存空间,ORACL不得不频繁地进行磁盘读写来获取数据,因此在对一个大型表进行分区之后,可以根据相应的分区建立分区索引。DBA创建索引时,应尽量保证该索引最可能地被用于where子句中,如果对查询只简单地制定一个索引,并不一定会加快速度,因为索引必须指定一个适合所需的访问路径。 第二,聚簇的使用。Oracle提供了另一种方法来提高查询速度,就是聚簇(Cluster
此文档下载收益归作者所有