Oracle数据库优化设计分析和探讨

2018-11-30 03:21阮正平
科技与创新 2018年5期
关键词:数据表缓冲区规范化

阮正平

(四川中电启明星信息技术有限公司,四川 成都 610000)

随着计算机技术在人们生产生活中的不断推广和使用,数据的数量和种类得到了极大的增长,为了更好地利用这些数据,建立一个庞大的存放多种类型数据的“库房”意义深远,这种数据使用需求催生了数据库的诞生和发展,而数据库实质上是对数据进行承载的一种载体。数据库的建设和发展为庞大数据信息的存放和人们对数据的查询、使用和管理等工作的开展提供了极大的便利。作为一种结构复杂的数据库管理系统,Oracle数据库为人们生产生活所广泛应用,并具有规模大和用户多等特点。在Oracle数据库运转过程中,会涉及到多个环节,而这每一个环节的工作又会对整个数据库的性能产生深远影响。为了使Oracle数据库的性能得到最大程度的发挥,在充分了解Oracle数据库基本构架和工作原理的基础上,对Oracle数据库进行优化设计具有十分重要的影响作用。

1 Oracle数据库简介

我们经常使用的Oracle数据库中的“Oracle”实际上是一种简称,它的英文全称为“Oracle Database”,亦或是“Oracle RDBMS”,它属于一种关系数据库管理系统,由美国甲骨文公司研发并推出应用的一种性能数据管理系统,具有较强的系统适应性,可在多种微机环境中得以实践应用,并具有较好的系统可移植性、强大的功能性和方便的操作等多种优点。Oracle数据库从最初被推出应用,已经历经了多个版本,其性能随着版本的不断推出也在不断提升,但是每一个版本的Oracle数据库都有其自身具有的优越性能。从当前该数据库的实践应用情况来看,Oracle数据库的应用十分广泛,其中B/S和C/S架构是最流行的。

2 OFA结构和SGA的应用

2.1 OFA结构的应用

在Oracle数据库中,有一种结构的应用是专门针对该数据库的逻辑配置和结构的优化而设置的,该结构便是OFA结构,OFA是一种最佳灵活体系结构。在OFA结构的影响作用下,Oracle数据库物理结构变得更加简洁,从而对逻辑对象的分布效率的提高起到积极的促进作用。因此,对于数据库影响的分类是首先要做的一步,而这种分类操作主要依据2方面的内容:一方面是数据库中的逻辑对象的使用方式,另一方面是数据库的物理结构。这些分类工作的开展实质上是分开一些不同类型的数据,具体为分开系统数据和用户数据、分开一般数据和索引数据以及分开低活动表和高活动表等内容。

在对数据库的逻辑结构进行设计时,我们需要遵循以下5个原则:①要统计存储相同方式的字段类型;②在对数据库系统进行设计时,要严格遵循一定的使用标准;③设置一定的分离区域;④在最大程度上缓解表空间冲突;⑤数据字典要作分离处理。

2.2 SGA的应用

在Oracle数据库中也有对内存进行管理的关键模块,这个模块便是SGA。SGA可以说担当着Oracle数据库内存分配的重要任务,因此,这也决定了整个数据库性能的好坏在很大程度会受到SGA大小的影响。SGA主要是由数据块缓冲区、字典缓冲区、重做日志缓冲区和SQL共享池4部分构成。其中,数据块缓存作为高速缓存在SGA中发挥着重要的作用,并通过最近最少使用方法来管理其空间。一般情况下,访问频率较高的数据块对该部分的实践应用较为广泛,要想对数据块缓冲区的实际使用情况进行一定的了解,就要通过对v$sysstat动态性能表的查询来实现。字典缓冲区包括很多内容,主要为数据文件名、字段名和用户账号数据等信息。该部分对空间进行管理的途径与数据块缓冲区的空间管理方式相同,对于字典缓冲区具体使用情况的查询主要是通过查询v$librarycache动态性能表来进行。重做日志缓冲区则在数据的恢复过程中发挥着重要的作用。Oracle数据库中执行计划的保持和SQL语句语法树的运行是在SQL共享池部分来进行的,该部分对空间管理的方式与数据块缓冲区和字典缓冲区的管理方式相同,而且一旦SQL的大小设置不当,有可能会降低整个数据库的性能。

3 规范化和反规范化

3.1 规范化

对于某个级别关系模式的集合我们称之为“范式”,我们将范式主要分为3种,即第一范式、第二范式和第三范式,它对于数据的规范化管理具有深远的影响作用,可以有效减少因数据冗存带来的不良影响。在对数据进行规范的过程中,要坚持逐步消除数据依赖中的不合理部分的基本处理思想,并在一定程度上尝试对模式中关系模式的分离。

3.2 反规范化

虽然规范化对于数据库的性能的提高具有较好的影响作用,但是,这种性能的优化设计并不是绝对的,有时候为了改善特殊情况下数据的查询,我们需要对规范规则进行一定程度的破坏,通过反规范化实现对数据的快速查询。

4 逻辑结构的优化设计

4.1 基本表的设计

4.1.1 以用户为中心进行表的设计

不合理的数据模型设计会在很大程度上限制SQL功能的发挥,对于表设计的规范化处理,可以在很大程度上提升数据库的灵活度,并对整个系统开发和运行的开销起到良好的降低效果。对于数据库完整性的检查,我们可以通过2种方式来实现,其一是在数据库即可完成,另一个是借助应用程序来实现。要想在应用程序中对数据库的完整性进行隐藏,则需要编写大量的管理代码,这又会在很大程度上提升服务器的信息通信量,这直接或者间接地给整个系统的工作效率带来了很大的不良影响。在设计数据库逻辑结构时,如果遵循规范化的理论,那么就可以确保数据库服务器中数据库完整性和一致性的实现,但是如果在数据表的设计上对第三范式的要求具有过高的依赖性,会使需要拆分表的数量急剧提升,从而使得数据库的服务器运行过程中需要多次进行表连接操作,最终对数据库整体性能的实现带来一定的不良影响。因此,在以用户为中心进行表的设计的过程中,要处理好核心事务性和灵活性之间的关系,努力实现二者关系的平衡化发展。

4.1.2 数据类型的合理使用

Oracle数据库中存储的数据类型具有量大、种类多的特点,而我们要想对数据类型进行定义,就需要对数据类型进行明确,并且还要参考合理的数据长度,这样不仅可以有效缓解因数据冗存带来的不良影响,还可以对系统检索效率的提升带来积极的促进作用。

但是在实际数据库的应用中,也常有一些违背这些原则的做法,诸如存储文本时使用的BLOB型或者存储日期数据时使用的字符串。要想更好地规避此类不良现象的出现,在对数据进行存储时应该尽量使用专门的数据类型。除此之外,我们在对数据进行存储时,不仅要满足相应的要求,还要最大程度地节约占用的空间。但是,如果数据的长度不明确,一般情况下会对这类数据进行最大长度的定义。这种处理方式可以给数据库系统的整体性能带来极大的不良影响,在对Oracle数据库的逻辑结构进行优化设计时,也要重视对数控类型的合理使用。

4.2 索引的优化设计

4.2.1 管理组织索引

在Oracle数据库中通过建立索引,可以安全映射数据表中的逻辑值,使得最终的映射结果达到指定的具有较高安全性的RowID,因此,对数据的物理地址进行快速定位,对于索引的积极构建具有深远影响。从索引的实际构建情况来看,在大型数据表中构建索引时,对于整体系统的性能会造成一定的不良影响。为此,在大型数据表中如果需要构建索引,要兼顾系统的整体性能,这时可以在大型数据表中作分区处理,然后分别建立索引。

4.2.2 聚簇

要想实现对2个或2个以上表之间的查询连接,通常情况下对聚簇的构建可以为这种查询连接的实现提供很大的便捷。举个具体的例子:如果需要在通话信息表Dia(lcaller,receiver,time,length)和电话信息表 Phone(name,address,number)之间建立查询连接,若在检索条件中出现这句“Where receiver=‘123456’AND Dial.caller=Phone.number”频率十分高,那么这2个表之间便可以构建聚簇,通过聚簇,对2个表之间连接效率的提升带来积极的促进作用。

4.2.3 索引被使用的条件

索引设置的优化提升对数控库整体性能的提高具有深远影响,它可以进一步提高对数据库访问的速度。Oracle数据库在使用索引时,至少需要满足以下2个最基本的条件:①Where字句中的这个字段必须与索引的首个字段具有协调一致性,②在任何形式的计算中,都不应该卷入Where字句中的这个字段。

5 物理结构的优化

5.1 磁盘读写的并行优化

在数据库访问开销中,磁盘I/O是十分重要的参考指标。在优化数据库的物料结构时,磁盘读写数据的次数具有一定的客观性,我们无法进行人为的干预,但是可以对磁盘读写竞争进行有效降低,这主要是以并行的方式来实现,并给系统性能的提高带来积极的促进作用。在采用磁盘读取并行化时,我们要遵循以下2个原则:①尽量在不同物理磁盘中存放SYSTEM、TEMP和ROLLBACK等表;②在不同的磁盘之间部署好表乃至索引之间创建好的表空间。

5.2 减少存储的动态扩展

即使建立好数据库,如果存储空间不足或者增幅长度不合理,在数据库运行的时候,存储结构会出现动态扩展等不利现象。在存储的动态扩展中,为了充分利用空闲空间,则需要借助SQL语句实现对数据词典的存储,整个过程不仅耗时较长,还极易提高数据文件和表空间值,这会对正在正常运行的数据库系统的性能带来很大的不良影响,会使得系统的整体性能突然降低。因此,在对Oracle数据库物理结构的优化中,对存储的动态扩展的减少也应该给予充分的重视。

6 结束语

Oracle数据库管理系统应用十分广泛,并具有较多的使用用户,在大型数据库工程发挥着十分重要的作用。而Oracle数据库系统的性能在很大程度上会受到Oracle数据库结构的影响,一般情况下,良好的Oracle数据库结构可以在很大程度上使得Oracle数据库的作用得到充分发挥。因此,要想对Oracle数据库的性能进行进一步优化,我们应该将对整个数据库性能起着基础性影响作用的Oracle数据库结构作为优化设计的切入点,对Oracle数据库的逻辑结构、物理结构和索引等结构进行积极的优化设计,从而对整体数据库的性能起到良好的提升作用。

[1]韦安云.Oracle数据库的性能调整与优化方法探析[J].电脑知识与技术,2015,11(21):8-9.

[2]张璐.Oracle数据库性能优化与实时监控研究[D].咸阳:西北农林科技大学,2015.

[3]雷明涛,李绪福.内存数据库与Oracle数据库的数据同步设计与实现[J].信息化研究,2015,41(02):61-65.

[4]杨嵩.浅谈Oracle数据库应用系统的性能优化[J].计算机光盘软件与应用,2015,18(03):111-112,115.

[5]陈杨.JTangSpider:一种高性能Oracle数据库同步平台设计与实现[D].杭州:浙江大学,2015.

猜你喜欢
数据表缓冲区规范化
基于VBA 的教务数据平台研究
论中医住院医师规范化培训中的六个关系
如何做好建筑工地规范化安全管理
谁“捆住”基层的手脚?——泛滥的规范化和标准化
湖北省新冠肺炎疫情数据表(2.26-3.25)
湖北省新冠肺炎疫情数据表
湖北省新冠肺炎疫情数据表
缓冲区溢出漏洞攻击及其对策探析
初涉缓冲区
计岁的规范化与年谱编纂体例