Oracle9i 数据库的性能优化与调整

2009-12-17 09:57陈泰宇刘国成杨长保
大家 2009年9期
关键词:决策支持系统吉林省数据库

陈泰宇 刘国成 杨长保

摘要:以吉林省粮食作物宏观决策支持系统作为Oracle9i数据库系统的应用实例,对Oracle9i数据库管理系统的性能调整方法与优化策略进行了介绍和探讨,这些实用方法和技术有效地解决了Oracle9i 数据库管理中的关键问题,提高了数据库的存储能力和运行速度。

关键词:Oracle9i 吉林省粮食作物宏观决策支持系统 优化与调整 数据库内存 逻辑存储 物理存储 快照

引言

Oracle数据库管理系统是当今世界上功能最优秀的数据库, 它具有强大的数据管理维护功能。作为本次项目成果之一的“吉林省粮食作物宏观决策支持系统”采用Orarcle9i作为空间数据库。 本系根据吉林省农业气候资源研究的现状以及存在的问题,基于GIS技术的农业适宜区划分及信息化研究,从积温、水分、日照、土壤肥力和施肥水平五个方面对吉林省乡镇农业气候资源进行资源的特征分析,对其进行量化分析与评价。所有信息数据均存于Oracli9i数据库中,如何做好Oracle9i 数据库的性能调整和优化就成为一个十分关键的问题。

一. 吉林省粮食作物宏观决策支持系统中Oracle9i 数据库的应用

1.1吉林省粮食作物宏观决策支持系统的由来

农业生态适宜性评价问题,是一个非常典型的模糊问题。项目组结合生态环境的模糊数学评价模型的基础上,以吉林省从1990年到1997年的多年的平均降水和5月到9月的积温作为基础数据,用1:50万土壤图来确定每个乡镇的土壤类型。结合专家系统和地理信息系统技术对吉林省做了农业生态适宜度以乡镇为最小单位的划分,从而开发了吉林省粮食作物宏观决策支持系统。此系统基于Webgis,系统构架采用B/S结构,管理层采用C/S技术开发,同时结合数据库技术、WWW 技术、地理信息技术和遥感技术, 系统提供了友好的人机界面的数据修改和录入系统,管理者可以根据需要对分区指标数据进行适时改动,随时得到分区的最新结果。从全局上、宏观上对粮食作物给出大范围的有规律性的多方面的认识的信息,便于各级领导部门、农业技术人员、农民,把握全局,进行决策。

1.2 属性数据库

属性数据库由农业资源信息等基础数据组成, 包括以下几类信息数据表

吉林省熟区分区表 地图编号、 乡镇名称、 适宜区划分、 熟期类型编码、 熟期类型、 最小积温、 最大积温 、最小降水量 、最大降水量、 最小无霜期、 最大无霜期、 最小日照时数、 最大日照时数

品种描述表 品种名称、选育单位、选育人员、品种来源、实验年限、种子性质、植株性状、果穗性状、籽粒性状、品质分析、抗逆性、生育日数、产量结果、播种期、种植密度、施肥、其他条件、制种技术、适应区域

玉米品种搭配方案表 作物、主推品种、搭配品种、新技术方案主推品种、新技术方案搭配品种、作物、积温类型描述

玉米品种品质分析表 品种名称、生育日数、产量结果、适应熟区、粗淀粉含量、粗脂肪含量、粗蛋白含量、平均产量、实验产量

二. 吉林省粮食作物宏观决策支持系统中Oracle9i数据库的系统性能调整和优化

本系统的数据库中存储了大量的数据, 当用户进行图形信息的查询检索和修改时, 如何提高数据的运行速度是数据库调整的一个关键问题。对于数据库的调整和优化可以从以下四个方面进行: 内存使用优化、数据存储调整、网络流量调整、使用索引。

2.1数据库内存优化

Oracle9i数据库有其专属的内存区域, Oracle9i使用机器的内存来存放常用信息和所有运行在该机器上的Oracle9i 程序。Oracle9i占用的内存越多, 速度就越快, 效率就越高, 通过对数据库内存的监控和内存参数的调整和优化可以提高数据库的运行速度, 提高数据库的查询效率。

2.2数据存储调整

数据库如何存储数据, 对查询性能也有一定的影响。一般可从物理存储和逻辑存储两方面进行。

2.2.1逻辑存储调整

Oracle9i数据库中数据以表的形式存在于表空间中, 一个表空间中可以存放多张表。在数据库的表空间设计时, 建议每一个表空间对应的数据物理文件的大小应该小于1G大小, 因为许多系统的操作系统不支持大于2G大小的文件。同时, 从数据库的备份角度考虑, 对小文件的备份不仅可以提高备份的速度, 也可以提高备份的安全性。由于创建表空间要用到数据文件, 如果一个系统很大的话, 就需要许多的数据文件。该数据文件的个数受到初始化参数或操作系统的限制, 因此在创建表空间时, 应该考虑系统的限制, 选择有效的逻辑参数。

对于一个Oracle9i 数据库而言, 它的最大数目受三个方面限制, 它们分别是: 操作系统能够打开的最大文件数目, db files 的数目, 建立数据库时的参数maxdatafiles 数目。在上述参数中, 以操作系统的限制为主, 其次为maxdataflies , 最后为db files。也就是说如果操作系统允许打开的文件数为32 , 而maxdatafiles 设置为48 的话, 系统认为打开的文件数目最大为32 , 如果操作系统允许最大的打开文件数目为64 , maxdatafiles 数目为32 , db files 数目为48 , 那么系统允许打开的文件最大数目为32 , 而不是48 。只有按适合的逻辑参数创建表空间, 才能提高数据库的存储能力。

2.2.2物理存储调整

在一个数据库安装完毕之后, 系统中已存在SYSTEM , TOOLS , RBS , USERS , TEMP 等表空间, 用户也可根据当时的系统的实际情况进行建立新的用户表空间, 在进行表空间的划分时, 应使它们尽可能分离并划分在不同的磁盘上。在系统安装时, 还应该考虑控制文件和可重做日志文件等这类数据库的重要组成文件, 要尽可能的将它们分配在不经常使用的盘上。

2.2.2.1表空间设计的原则

表空间设计的原则为: 把由用户创建的其余表空间同SYSTEM 表空间进行分离, 把系统的数据表空间同索引表空间分离, 把操作频繁和不经常操作的表划分在不同的表空间中。对于表空间的设计来说, 大体上又可细划分为:

* 把用户数据与数据字典数据分开;

* 把不同应用组的数据分别放在不同的表空间中;

* 为了减少输入/ 输出操作对磁盘的竞争, 把不同表空间的数据文件放在不同的硬盘上;

* 分离用户数据和回滚段的数据以防止某个磁盘出现故障丢失数据。

2.2.2.2碎片整理

存储新纪录时, 自由空间碎片会降低运行性能, 若表空间的自由空间被分成碎片, 数据库可能必须动态和并相邻的自由盘区来创建一个单独区间(extent) , 这个区间要大的足以处理新的空间需求。碎片整理可从两方面进行。第一方面: 段的碎片整理。当创建一个数据库

对象(一个表或一个索引) 时, 通过用户缺省值或特定令来为它指定表空间。在表空间中创建一个段以存储与对象相关的数据。当用户进行大量的数据插入操作时, 区间会随着数据的增多不断扩展, 这些区间由于不相邻, 从而形成了数据段的碎片, 这会影响数据的存储和查询。由于段的初始化参数(initial) 规定其初始化区间的大小, 所以应把这个初始值设置成大的足以处理该段的全部数据。这样可以提高数据库的查询效率。第二方面: 自由盘区的碎片整理。表空间中的自由盘区是表空间中相连自由块的集合。当一个段撤销时, 这个段的盘区被释放并标记为自由盘区。然而, 这些自由盘区并不是总能与相邻自由盘区重新结合在一起。如果表空间的缺省pctincrease 值不为零, SMON 后台进程会定期地将相邻自由盘区和并; 若pctincrease 值为零, 表空间的相邻自由空间将不会被数据库自动合并; 对于相邻的自由盘区, 可运用命令alter tablespace 表空间名coalesce ;来强制合并。

2.3网络流量控制

随着数据库应用程序程度的增加, 许多用户会通过网络对数据库进行远程访问并获取所需要的数据, 这时支持服务器的网络就成为发送数据给用户过程中的一个瓶颈。数据库要通过自身的调整来减少发送数据的网络软件包的数量, 减少网络流量提高远程查询速度。

在一个分布式环境中, 每一个数据段存在于一个位置。当发生数据请求时, 便会通过数据库链接从一个远程数据库访问数据。Oracle9i 数据库提供了一种方法以提高远程数据访问速度, 即快照(snapshot) 方式。快照将主数据库中的源数据复制到多个目标数据库中。它同时还提供刷新工具, 按指定时间更新目标数据库。快照是远程计算机数据放置在本地数据库系统上的一个只读副本, 在远程服务器上存储的数据一旦发生变化, 数据变动便会发送给本地计算机。运用快照可以减少网络流量,提高了远程查询速度。

2.4使用索引

使用索引可以极大地提高系统检索性能, 建立索引主要是对经常出现在索引条件中的数据建立索引, 在数据库中我们为表建立相关的索引, 并将索引与用户表所在的表空间分开, 用户表在crop表空间, 索引在index 表空间上, 这样可以减少并发次数, 加快查询速度。

三.结束语

作者本人参与了吉林省粮食作物宏观决策支持系统的设计与开发工作,对于Oracle9i数据库的性能调整和优化积累了很多经验, 认为优化数据库整体的应用性能是提高系统处理速度的一种行之有效的办法, 但在实际应用中要根据系统的实际情况具体分析, 对优化的方法反复实验, 最后再确定最终的优化方法, 这样才能达到较好的优化效果。另外,不管Oracle9i的性能优化与调整到什么程度,都是有限度的,为了实现查询优化,可以借助XML技术,为了便于客户端的动态实时查询和实时交互处理, 采用分区和分层的数据组织方式, 以避免无用信息的传输, 减少通讯量, 提高系统的查询响应时间。服务器端负责收集客户端的请求信息, 生成查询语句, 与相应的Oracle9i数据库连接, 返回数据查询结果, 进行数据格式的转换, 数据的打包, 并将处理的结果返回给客户端。对传统的关系数据库中的数据, 可采用Java Servlet 技术和JSP 技术, 收集客户的查询需求, 通过JDBC 在数据库中搜索到相关的数据, 并将其转换成符合特定DTD 的XML 文档。 对XML 文档的数据, 可利用XQL 查询语言提取用户需求的数据。

参考文献:

[1] 杨志和, 刘细武, 王岳斌, 胡虚怀. ORACLE9i数据库系统性能优化研究与实践[J]. 计算机应用与软件 , 2006,(12)

[2] 陈迪, 陈琴. Oracle9i数据库的性能优化方法[J]. 广西科学院学报 , 2005,(S1)

[3] 孟凡密,. ORACLE数据库服务器性能优化技术[J]. 鞍山科技大学学报 , 2005,(06)

[4] 童有奎. 浅谈ORACLE数据库系统性能优化方案[J]. 上海铁道科技 , 2005,(03)

作者简介:陈泰宇(1976- ),男,吉林省农安人,讲师,研究生。主要从事软件设计与开发工作。

猜你喜欢
决策支持系统吉林省数据库
新一代水电厂群防汛调度决策支持系统关键技术研究及应用
奔跑的小浪花
吉林省2019年秋冬季秸秆离田工作方案
反腐
数据库
供应链营销管理与决策支持系统的研究与实现
供应链营销管理与决策支持系统的研究与实现
数据仓库在合同发票管理决策系统中的应用
数据库
基于数据挖掘的决策支持系统及应用研究