民航气象oracle数据库优化探讨

来源 :科技资讯 | 被引量 : 0次 | 上传用户:metor2009
下载到本地 , 更方便阅读
声明 : 本文档内容版权归属内容提供方 , 如果您对本文有版权争议 , 可与客服联系进行内容授权或下架
论文部分内容阅读
  摘要:民航气象传真广播系统主要由通信分系统、数据库分系统、预报平台、服务平台四部分组成,其中数据库分系统采用oralce数据库软件管理数据库系统。数据库系统和操作系统一样,在计算机上安装成功后,还需要进一步配置和优化,从而使其具有更强大的功能和运行在最佳状态。如果在设计阶段因为各种因素没有进行较为合理的配置和计划,那么就需要在后期对数据库系统进行优化。
  关键词:民航气象 数据库 性能优化
  中图分类号:TP311.5 文献标识码:A 文章编号:1672-3791(2011)03(a)-0017-02
  数据库系统性能的优化,除了在设计阶段对其逻辑存储结构和物理存储结构设计进行优化,使之在满足需求条件下,时空开销性能最佳外,还可在运行阶段,采取一些优化措施,使系统性能最佳。本文所讨论的性能优化主要指民航数据库oralce运行阶段的性能优化。大多数性能问题并不是一种孤立的症状,而是系统设计的结果,因此性能优化就集中在那些导致不可接受特征的同一的、固定的和潜在的问题上。除了用Oracle优化器来优化数据库的性能外,数据库管理员还可通过优化Oracle的参数设置等手段来优化数据库的性能,对参数的细微优化便能影响系统整体性能。
  1 用技术参数优化性能
  为了有目的优化系统性能,数据库管理员可选定上述一个或多个目标来实施优化,使其具有最佳性能。
  在对Oracle数据库进行优化时,需要用到许多的参数,其中有一部分参数对系统性能影响较大,这部分参数叫可变参数。可变参数按其作用可以分为两大类,一大类是起限制作用的,另一大类是影响系统性能的。
  1.1 限制类可变参数
  (1)DML_LOCKS:该参数表明多少个用户,可同时能修改多少张表。例如:有四个用户同时修改二张表,则要求表上的总数为8。若置为0,则组织队列不起作用,其性能会稍有提高。使用该参数时不能用DROP TABLE、CREATE INDEX或显式封锁。
  (2)LICENSE_MAX_SESSION:该参数指出允许并发用户会话的最大数。若此参数为0,则不能实施并发。若并发的用户会话数已达到此极限,则只有具有RESTRICTEDSESSION权限的用户才能连接到服务器。
  (3)LICENSE_MAX_USERS:该参数指出在一个数据库上可建立的最大用户数。当达到最大值时,便不能再建新用户,可改变此值以放松限制。在LICENSE_MAX_SESSION或LICENSE_MAX_USER为0时,则并发会话或任何用户都不能用。若对不同的实例,此参数不同时,则以第一个登录的数据库实例的参数为准。
  (4)MAX_DUMP_FILE_SIZE:该参数指定操作系统中写跟踪文件的块的最大值。可用此值来限制跟踪文件的空间。
  (5)OPEN_CURSORS:该参数指明一个用户进程能同时打开光标的最大数,它能限制每个用户进程占用的内存空间量。
  (6)OPEN_LINKS:该参数指定并发连接到远程数据库的最大用户进程数。若同时引用多个数据库,则应该增大该值。例如:同时交替访问A、B和C三个数据库时,若OPEN_LINKS设置为2,则需花费等待连接时间。此参数只用于分布事务。若该参数设置为0,则不允许进行分布事务处理。
  (7)PROCESS:该参数指定同时连接到Oracle服务器上的最大用户进程数。该参数值包括6个后台进程和一个登录,因此,该参数值为20,则只能有13或14个并发用户连接到服务器。
  (8)ROW_LOCKING:该参数指定行封锁方式。若设置为“ALWAYS”,则在修改表时只实施行封锁。若设置为“INTENT”时,则行封锁只适用于SELECT FOR UPDATE,而在修改时实施表封锁。
  1.2 影响系统性能类可变参数
  (1)CHECKPOINT_PROCESS:该参数根据是否要求检查点而设置成TRUE或者FALSE。当所有缓冲区的信息写到磁盘时,检查点进程(CHPT)建立一个静态的点。在归档日志文件中做一个记号表示有一个检查点发生。检查点发生在归档日志转换的时候或当达到log_checkpoint_interval定义的块数的时候。当设置此参数为TRUE时,后台进程CHPT便可工作。在检查点期间内,若日志写进程(LGWR)的性能减低,则可用CHPT进程加以改善。
  (2)DB_BLOCK_CHECKPOINT_BATCH:该参数的值设置得较大时,可加速检查点的完成。当指定的值比参数DB_BLOCK_CHECKPOINT_BATCH大时,其效果和指定最大值相同。
  (3)DB_BLOCK_BUFFERS:该参数是在SGA中可作缓冲用的数据库块数。该参数决定SGA的大小,对数据库性能具有决定性因素。若取较大的值,则可减少I/O次数,但要求内存空间较大。每个缓冲区的大小由参数DB_BLOCK_SIZE决定。
  (4)DB_BLOCK_SIZE:该参数表示Oracle数据库块的大小,以字节为单位,典型值为2048或4096。该值一旦设定则不能改变。它影响表及索引的FREELISTS参数的最大值。
  (5)DB_FILES:该参数为数据库运行时可打开的数据文件最大数目。
  (6)DB_FILE_MULTIBLOCK_READ_COUNT:该参数表示在顺序扫描时一次I/O操作可读的最大块数,该最大块数取决于操作系统,其值在4至16或者32是比较好。
  (7)D1SCRETE_TRANSACTION_ENABLED:该参数实现一个更简单、更快的回滚机制,以改进某些事务类型的性能。当设置为TRUE时,可改善某些类型的事务性能。
  (8)LOG_ARCHIVE_BUFFER_SIZE:此参数的值依赖于操作系统,它与LOG_ARCHIVE_BUFFER 参数一起用于调整有归档日志的运行,使其运行速度尽量加快,但不能快到降低性能。
  (9)LOG_ARCHIVE_BUFFER:该参数指定用于归档的日志时的缓冲区数。
  (10)LOG_BUFFER:该参数指明分配给SGA中的日志缓冲区的字节数,该参数值较大时,可减少日志I/O的次数。对于繁忙的系统不宜采用大于或等于64K的值。缺省值—般为数据库块的4倍。
  (11)LOG_CHECKPOINT_TIMEOUT:该参数指明两个检查点之间的时间间隔,若指定为0时,则说明不允许进行基于时间的检查点。
  (12)LOG_CHECKPOINT_INTERVAL:该参数用来确定检查点进程的执行频率。这个数值设置成取检查点之前处理的重做缓冲区块的数量。
  (13)LOG_FILES:该参数指定运行期间数据库可打开的日志文件数。若需要较大的SGA空间,而不需多个日志文件,则可减少该值。
  (14)LOG_SIMULTANEOUS_COPIES:该参数是日志缓冲区副本闩锁的最大数,为同时写日志项所用。为提高性能,可设置此参数为两倍的CPU数,对单进程系统,该值多数设置为0,此时断开闩锁。
  (15)LOG_SMALL_ENTRY_MAX_SIZE:该参数与LOG_SIMULTANEOUS_COPIES参数配合使用。若日志项大于此项,则在给缓冲区分配空间并获得日志复制闩锁之后,用户进程释放日志复制闩锁。
  (16)OPTIMIZRER_MODE:若该参数的值为RULE,则ORACLE优化器选择基于规则的优化;若设置为COST,并且在数据字典中存在有统计信息,则优化器选择基于代价的优化方法进行优化。
  (17)SEQUENCE_CACHE_ENTRIES:该参数指明在SGA中可进行高速缓存的序列数,用于直接存取。该高速缓存区是基于最近最少使用(LRU)的算法进行管理的。若此值设置得较高,则可达到较高的并发性。
  (18)SEQUENCE_CACHE_HASH_BUCKETS:该参数用于加速查看高速缓冲区最近请求的最新序列的桶式地址数,每个桶式地址占8个字节。高速缓冲区以散列表排列,该参数应为质数。
  (19)SERIALIZEABLE:此参数用于保证重复读的一致性。当它设置为TRUE时,查询可保证表级读一致,以防止在此查询提交之前的修改。
  (20)SHARED_POOL_SIZE:该参数指定共享池的大小,其中包括共享光标及存储过程。在多用户系统中,较大的SHARED_POOL_SIZE值可改善SQL语句的执行性能,但较小的值可节省内存。
  (21)SMALL_TABLE_THRESHOLD:该参数决定SGA中用于扫描的缓冲区的数目,若表的数目小于该值,则该表可整个地读入高速缓存区。若表大于该值,则立即重用该缓冲区。一般用缺省值可使性能最好。
  (22)SORT_AREA_TETAINED_SIZE:这是会话内存的最大数量,用于内存排序。当从排序空间提出最后—行时,便释放该内存。若排序要较大的内存,则分配一临时段,排序便可在盘上进行。用于排序的最大总量可由SORT_AREA_SIZE指定,而不用此参数。可以分配同样大小的多个排序空间,不过一般对于复杂的查询才需要。
  (23)SORT_AREA_SIZE:该参数用于指定进行外排序(磁盘)时所需PGA内存的最大数量,以字节为单位。当排序行写入磁盘时,该内存被释放。增大该参数的值,可改进排序效率。一般不调整该参数,除非排序量很大时才调整。
  2 用Oracle 数据库整理碎片
  2.1 碎片是如何产生的
  当生成一个数据库时,它会分成称为表空间(tablespace)的多个逻辑段( segment),如系统(system)表空间,临时(temporary)表空间等。一个表空间可以包含多个数据范围(extent)和一个或多个自由范围块,即自由空间(free space)。
  当表空间中生成一个段时,将从表空间有效自由空间中为这个段的初始范围分配空间。在这些初始范围充满数据时,段会请求增加另一个范围。这样的扩展过程会一直继续下去,直到达到最大的范围值,或者在表空间中已经没有自由空间用于下一个范围。但是一个段包含多个范围的情况是大量存在的,没有任何措施可以保证这些范围是相邻存储的。当要满足一个空间要求时,数据库不再合并相邻的自由范围,而是寻找表空间中最大的自由范围来使用,这样将逐渐形成越来越多的离散的、分隔的、较小的自由空间,即碎片。
  2.2 碎片对系统的影响
  (1)导致系统性能减弱。
  当要满足一个空间要求时,数据库将首先查找当前最大的自由范围,而“最大”自由范围逐渐变小,要找到一个足够大的自由范围已变得越来越困难,从而导致表空间中的速度障碍,使数据库的空间分配愈发远离理想状态。
  (2)浪费大量的表空间。
  尽管有一部分自由范围(如表空间的pctincrease为非0)将会被smon(系统监控)后台进程周期性地合并,但始终有一部分自由范围无法得以自动合并,浪费了大量的表空间。
  2.3 自由范围的碎片计算
  由于自由空间碎片是由几部分组成,如范围数量、最大范围尺寸等,可用fsfi--free space fragmentation index(自由空间碎片索引)值来直观体现:
  fsfi=100*sqrt(max(extent)/sum(extents))*1/sqrt(sqrt(count(extents)))
  2.4 自由范围的碎片整理
  表空间的pctincrease值为非0 ,可以将表空间的缺省存储参数pctincrease改为非0。一般将其设为1,如:
  alter tablespace temp
  default storage(pctincrease 1);
  这样smon便会将自由范围自动合并。也可以手工合并自由范围:
  alter tablespace temp coalesce;
  2.5 段的碎片整理
  在有些情况下,有必要对段的碎片进行整理。要查看段的有关信息,可查看数据字典dba_segments,范围的信息可查看数据字典dba_extents。如果段的碎片过多,将其数据压缩到一个范围的最简单方法便是用正确的存储参数将这个段重建,然后将旧表中的数据插入到新表,同时删除旧表。这个过程可以用import/export(输入/输出)工具来完成。export()命令有一个(压缩)标志,这个标志在读表时会引发export确定该表所分配的物理空间量,它会向输出转储文件写入一个新的初始化存储参数——等于全部所分配空间。若这个表关闭, 则使用import()工具重新生成。这样,它的数据会放入一个新的、较大的初始段中。
  Oracle数据库系统提供了一些工具和脚本来获取数据库的性能指标和优化的方法。如使用utlbstat.sql和utlestat.sql脚本获取一段时间内数据库的内存、磁盘I/O等的情况;使用动态性能视图和数据字典视图来获取命中率和系统等待事件等信息。当然,也可以使用Oracle Enterprise Manager图形化工具来监控。
其他文献
同事家里的一台电脑,使用的是:Windows 7系统。家里的小朋友玩了一晚上的游戏。也不知道他修改了什么设置,第二天开机时,就出现Windows启动管理器到Windows启动窗口之间的重复
本文主要是对影响变电站阀控铅酸蓄电池使用寿命的主要因素进行简要的说明和分析,并在此基础上进一步深入探讨延长阀控铅酸蓄电池使用寿命的有效措施。
目的 观察右美托咪定在活组织检查手术中的临床效果.方法 40例行活组织检查手术患者随机分成2组(右美托咪定组和对照组),每组20 例.监测血压、心率、脉搏血氧饱和度,观察镇静镇
结合多年来的工程实践,阐述了建筑电气工程的特点,提出了做好建筑电气施工监理工作的要求和重要性。
CNG加气站一般修建在城市交通主干道边上,有时与轻轨或者地铁之间相距很近,如果处理不好会给城市带来安全隐患。本文针对某新建CNG加气站地处轻轨隧洞控制保护线范围内,利用
基于LED光源的新型黑板灯具逐渐应用于教室照明,但是从现场老师反馈的照明效果得知,LED黑板灯具照明存在不同程度的眩光问题。对老师产生直接或者间接眩光的原因,部分是由于