admin 管理员组

文章数量: 887021


2024年1月15日发(作者:log4j2是啥)

维普资讯

河北科技大学学报 Vo1.23 No.1 Sum 60 2002 第23卷 总第60期第1期 2002年 JOURNAL oF HEBEI UNIVERSITY oF SC1ENCE AND TEC}矾oLoGY 文章编号:1008—1542(2002)01—0060—04 基于Oracle的应用软件系统 检索性能的优化 陈向辉,王敬乐 (河北I业大学电气信息学院,天津摘300130) 要:数据库的性能最终决定数据库实际的可用性。而对于一个设计成形并且已投入 运行的大型数据库系统,通过改变应用程序的设计来进行调整优化是很复杂的。通过分 析Oracle服务器的特征,从最为关键的数据库逻辑结构、系统全局区、数据存储和磁盘 I/O4个方面阐述了在不改变应用程序的前提下提高系统性能的相应策略,通过一个基 于Oracle系统的试验,把数据的检索速度提高了1 4倍。 关键词:Oracle;索引;聚集;性能优化 中图分类号:TP 3l1.132.3 文献标识码:A Oracle是一个优秀的大型关系型数据库,使用Oracle为后台数据库的应用系统规模都比较 大,因而性能优化就显得非常突出。如果采用完整性约束、编写存储过程、存储函数和触发器等策 略来完善应用程序将对系统性能的提高有很大的帮助,但是当数据库系统投人运行后,就很难对 它进行重新设计和编码。在这种情况下,我们采用不改变应用程序的前提下,大幅度的提高应用 系统的性能从而使性能得到了优化。 1 Oracle系统的性能优化 1.1优化数据库逻辑结构 对关系型数据库而言,性能优化的核心是数据库的逻辑设计。而数据库逻辑结构的调整对于 已经投人运行的数据库系统性能的改善起到了决定性的作用。这主要涉及两个方面的内容:索引 和聚集。 1.1_1索引 索引是Oracle用于提供对表进行快速访问的表结构。台理的构造表索引将大大 有助于提高数据库查询速度。但是并不是说索引越多就越好,索引会减慢INSERT,UPDATE和 DELETE的执行速度,而且索引需要占用内存空间,可以说索引是以空间换取时间。因此,建立 一个合理的索引结构是非常重要的。建立索引可以遵循下面的一些原则。 收稿日期:20Ol一11 13 责任编辑:李穆 作者简舟:陈向辉(1 975一).男,河北赞皇县人,硕士生.研究方向:计算机应用 

维普资讯

第1期 陈向辉等 基于Oracle的应用软件系统检索性能的优化 61 1)在经常出现在检索条件中的数据域建立索引以提高检索效率; 2)由于Oracle对外键不建立索引,因此在利用外键连接的表中,外键上也应该建立索引; 3)对经常进行表连接操作中的数据列建立索引以提高多表连接效率; 4)对于复合索引而言,索引中的数据域顺序非常重要,要保证其和实际应用的检索和连接顺 序保持一致。 另外,随着时间的增加,由于基础表所进行的插入、更新和删除导致叶子行在索引中被删除, 使该索引形成碎片 碎片较高的索引必须重建以保持最佳性能。 1.1.2聚集如果有几个相关的表,它们有一个或几个公共的列经常一起使用,就可以把这些 表物理的存储在一起,或者物理的靠近。这样可把面向索引的查询转为物理查询.从而加快连接 查询的速度。例如,可以建立一个聚集,然后建立两个表,使其在聚集中: create cluster depts emps(deptid number(5)); create table departments(deptid number(5)primary key. deptname varehar2(30),empnum number(8)) cluster depts—emps(deptid); create table employees(empid number(8)primary key,empname varehar2(30), deptid number(5)references departments(deptid)) duster depts—emps(deptid); 通过建立聚集使这两个表在物理存储上发生了改变,对它们进行连接查询时就不用再进行 逻辑连接了,速度上有了很大的提高。 1.2优化系统全局区 系统全局区(System Global Area,SGA)是内存中的一个区域。SGA包含共享的内存缓冲 I 区,影响连接到该实例所有会话的性能的状态和配置。当Oraele实例启动,SGA及其部件的内 存结构即在系统内存中建立。从性能优化的角度,数据缓冲区高速缓存和共享池是SGA的两个 最重要的优化区域。 1.2.1数据缓冲区高速缓存的优化 由于Oracle服务器可以从内存的数据缓冲区中直接访问 高速缓存的数据块,而不是从磁盘中读取它们,因此减少了需要执行的I/O操作,从而提高了性 能。数据缓冲区性能的最重要的度量是数据缓冲区的命中率,它度量Oracle在内存中找到的所 需数据块的相对数量。可以通过下面的方法来查询计算数据缓冲区的命中率: select round((1一(sum(decode(name,’physicalreads’,value,0)) /(sum(decode(name,’db block gets’,value,0)) +sum(decode(name,’consistent gets’,value,0))))),2) from v¥sysstat{ 如果结果小于0.95,可以通过修改该实例的inlt.ora文件中的DB BI OCK BUFFERS 参数来提高命中率。这个参数是在内存中保留的Oracle块的数量。 1.2.2共享池的优化共享SQI 池(sharedSQI poo1)相当于程序高速缓冲区,所有的用户程 序都存放在共享SQI 池中。这个高速缓冲区中存放所有通过SQI 语法分析,准备执行的SQI 语句 可以通过下面的查询计算来得到库高速缓冲区的命中率: select round((1一(sum(reloads)/sum(pins))),2)from v¥libraryeaehe{ 如果结果小于0.95,就需要增大init.ora文件中SHARED POOL SIZE参数的值来提高 命中率。 

维普资讯

62 河北科技大学学报 2002拒 1.3优化数据存储 数据存储影响性能的程度与空问碎片有关。在数据仓库中,由于大的查询很常见,因此经常 会遇到大量的、连续读取的情况。碎片的整理包括表空间碎片的整理和对象碎片的整理 1.3.1表空间碎片的整理随着时间的增长,表空问的可用空间将破碎成多个区。可用空问碎 片有两类:“蜂窝式”碎片和“气泡式”碎片 前者是出现了相邻接的多个区造成的,后者是可用区 被已用区隔开来形成的空洞。蜂窝式碎片可通过使用alter tablespace...coalesce命令使相邻的 可用区聚集成一个单个的区。而气泡式碎片目前只能通过导出和导人重新组织数据来解决。 1.8.2对象碎片的整理当数据库表格中的某行被删除后,数据块中会留下自由空问,要想使 块重新返回自由列表,必须在这个块中删除足够的行。对象碎片主要有两种:行迁移碎片、行链接 碎片。消除这种对象碎片的方法有两种:导人导出和通过创建临时表来消除行迁移和行链接碎 片。 1.4优化磁盘I/O 数据库的数据最终是存储在物理磁盘上的,因而为了避免与I/o相关的性能瓶颈,监控磁 盘i/o并保持其优化是非常重要的。除了纯粹的硬件因素外.可以通过观察并避免磁盘热点(在 文件中I/0集中到带有多个被大量访问的文件的一个相对少量的磁盘时发生)来提高磁盘I/0 限定系统的性能。为了减少磁盘I/0竞争,不同的系统表空间应尽量分布在不同的物理磁盘上; 被高频访问的表应该在表空问/物理磁盘上分开;最经常访问的表和索引应该放到最快的磁盘 上。上述这些方法可以减少磁盘I/O争用 2实例 河北省地方税务局纳税系统采用Oracle作为后台数据库的系统 在正常工作日,各地纳税 厅开始营业并且系统运行稳定的状态下,通过纳税系统的运行状态来观看系统优化的效果 表1 Oracle系统优化对照表 Tab.1 Comparison of optimizing oracle system 从表1中可以看出,通过采取相应的优化策略,整个系统的性能得到了很大的改进。在系统 经过最初的和最为有效的调整后,再进行其它的调整对系统性能的影响就不是很大了。因此从总 体上来说,本文讨论的优化方法对Oracle系统的性能的改善还是比较显著的 3结束语 作为当今最为流行的大型数据库,Oracle在越来越多的系统中得到应用 在实际应用中,性 能优化的程度是决定一个大型数据库系统高可用性的一个关键因素,选择台理的优化策略,将对 充分利用Oracle资源,提高系统的性能有很大的帮助 

维普资讯

第l期 陈向辉等 基于Oracle的应用救件系统检索性能的优化 63 参考文献: n]SAMITSarln Oracle数据库管理员指南[M].钟鸣 孙登峰译.北京・机械工业出艋社,2001・ r21 VENKAT s,DEVRAJ.Oracle24×7技术与技巧——数据库高可用性实现方案[M:.胡季红译北京:机械工业出版社 2000. [3]酋正辩,王新英.Oracle8.X For WiadowsNT宴用教程[M]_北京;清华大学出版社,1998- ]MICHEAL J.Corey.Oracle优化技术[M]刘轻霞译北京・机械工业出版社t1 998 Performance Optimization of Searching Based on Oracle Application Software System CHEN Xiang—hui,WANG Jing—le (College of Electric and Information Science,Hebei University of Techno[ogytTianjin 300130) Abstract:Performance of database determines its own usability.With regard to large database systems which are already on stream tit is very comp[icated to improve system performance by modifying app[ication.The paper- through analyzing characters of Oracle Server,expatiates several methods to improve system performance without changirLg the existent application.By experiment based on Oracle System,the speed of searching data is increased by 14 times. Key words:0racle;index;cluster;perfoT ̄nCe optimization (I-接第50页) Study on the Knowledge Base System Structure of an Intelligent Decision Support System L1 Guo—chang’.LI Zhi。 (1.College of Economics and Management,Hebei University of Science and Techno[ogy,Shijiazhuang Hebei 050018.China;2.Study Department of Shijiazhua ̄gColtege ofWorkers,ShijiazhuangHehei 050041,China) Abstract:Decision support system(DSS)is a advanced phase of management information system(MIS),which can be developed into intelligent DSS by introduction AI(artificial inte[1igence)into it to provide expert revel decision support.The deep KB(knowledge base)keeps atom—knowledge or Eaacto—knowledge which can work with reasoning machine to accomplish inte[1igent decision in the way of shallow knowledge formed by the combination of atom—knowledge and macro—knowledge.The shatlow KB is divided into dynamic part and static one to achieve steady shatlow knowledge support and renewable shatlow knowledge support.The data structure of deep knowledge base takes the form of hypertext. Key words:artiifcial inte[tigence;decision support system;knowledge base;hype ̄ext;knowledge acquisition. 


本文标签: 性能 系统 碎片 优化 数据