Oracle数据库调优及分析
2014-09-24温伟强
温伟强
摘要:在当前信息化技术在电子商务之中的应用逐渐深入,其性能逐渐受到越来越多的人的关注,尤其是在业务数据量较大行业之中,其性能对业务的成败有直接的关系,基于此,本文分析了Oracle数据库调优措施。
关键词:Oracle;数据库;优化
中图分类号:G250文献标识码: A
引言
计算机对于数据的统筹无非于文件、数据库两种。由于文件不利于数据共享的形成,因而主要以第二载体的形式出现。Oracle数据库可充分实现数据的完整性、独立性、共享性及一致性Oracle数据库的数据完整性及分布合理性,Oracle数据库成为世界目前使用最为广泛的数据库管理系统。但数据库的调优问题一直是数据库研究管理中的最大难题。因此,数据库的安全必须通过数据库的管理系统来得以实现,数据库的安全使用和安全防护十分重要,数据库所面临的安全威胁也日益增加。
1、ORACLE数据库的体系结构
1.1、物理结构
包括数据文件、日志文件、控制文件、参数文件等。其中数据文件包含数据库实际的数据。数据包含在用户定义的表中,而且数据文件还包含数据视图,数据修改以前的映像索引和其他类型的结构;重作日志包含对数据库的修改记录,可以在数据删除后恢复。一个数据需要至少有2个日志文件;控制文件包含维护和校验数据库一类的信息。一个数据库需要至少一个控制文件。
1.2、系统全局区
包括共享池、数据缓冲区、日志缓冲区等。其中,共享池是为了存储最近执行的SQL语句和最近使用的数据视图数据。这些SQL语句可以是用户进程提交的,也可以是从数据视图中读取的;数据库缓冲区高速缓存是为了存储最近经常使用的数据。这些数据从数据文件中读取,或者是写入数据文件;重做日志缓冲区用于追踪服务器和后台进程对数据库所做的修改。
1.3、进程,包括用户进程、服务器进程、后台进程等。其中用户进程一个呼叫连接ORACLE服务器的程序,必须首先建立一个连接,并不直接与ORACLE服务器交互;服务器进程是指一个与ORACLE服务器直接交互的程序,负责执行和返回结果;后台进程是指护和执行物理数据库和内存结构之间的关系。
2、关于Oracle数据库应用模块的分析
2.1、通过对Oracle数据库应用性质分析
得知其数据库系统功能非常的强大,其的起源是一种关系型的数据库技术,通过对数据间关系的理解,更有利于提升数据库的综合效益,通过对这些构造的应用,进行信息库的不同关系的反映。Oracle数据库提供了一种良好的服务器体系结构,通过对多种操作系统的应用,满足现阶段SQL.NET软件层的工作需要,保证SQL.NET的有效应用,有利于Oracle数据库的良好运作效益的实现,这也需要进行Oracle数据库分布式环境的分析,保证多点查询工作的开展,进行革命式的行锁定模式的开展,进一步提升事故的处理效率,保证关系型数据库的有效应用。
2.2、通过对Oracle数据库系统的分析
得知其具备多用户的特点,其进行了大数据库的支持应用,满足了多元化的性能事务处理的需要,其也具备良好的硬件环境独立性,进行了不同种系统的支持,其内部也具备良好的工作环境,能够按照工作标准的需要,进行数据库存取信息、操作模块等的开展。有着更好的安全性和完整控制,并且Oracle数据库允许将处理分为数据库服务器和客户应用程序处理,所有共享的数据管理由具有数据库管理系统的计算机处理,而运行数据应用的工作站侧重于解释和显示数据。
2.3、数据库优化的概述
数据库的优化实际上是指对数据库性能的调优,调优包括应用程序SQL代码调优,内存调优,I/O调优。数据库优化的方法索引优化设计。给数据库中的表加上索引能加快对表的查询效率,但并不是索引越多越好也不是任何表都要增加索引,对于经常更新的表或者数据不是很多的表,如果更多的索引,反而会慢,因为索引要占用内存,插入时还要扫描索引。并行优化设计。一个CPU同一时刻只能服务一个进程,如果有多个CPU,提高CPU利用率,可以同时运行多个进程,并行就是把单个进程处理变成多个进程处理来执行,减少处理的时间[7]。高效地进行SQL语句设计。不要多个SQL语句同时执行或者是同时多方面对数据库进行操作,避免数据库系统资源的发生竞争。写查询的SQL语句时,尽量不要对全表进行扫描,应该根据需要加上相对的条件,使其指扫描符合条件的部分,减少系统资源的利用。用尽量查过的SQL语句,充分利用共享。
2.4、SQL语句的优化
2.4.1、SQL优化规则验证
SQL优化系统首先要做到的是根据规则对SQL语句进行优化改写,分析其有效性。SQL优化规则验证主要包括以下几个方面。SQL语句预处理。该部分的主要目的是将语句格式转化为后台可识别的格式,使Oracle数据库能够产生计划,Oracle主要执行的是SQL语句或SQL命令文件,当采用SQL命令文件执行时,其文件中的语句是一个整体,执行过程中不能中断。数据库服务器端执行。通过输入优化的SQL语句并将相关的参数传递给Oracle即是Oracle的执行。输出结果。将产生的结果集以字符串数组的形式交由系统的前台处理。
2.4.2、SQL优化整体流程
通过Oracle数据库中SQL的执行过程分析,对给定的SQL语句进行优化处理。其主要的流程是:获取低效的SQL语句,获取优化建议,根据相关的优化建议对SQL语句进行优化处理,将优化后语句进行参数比对,如果优化未完成,则根据规则进行优化,否则直接结束。对于优化语句的处理,主要分析低效的SQL语句,时间最长的SQL语句,耗空间最大的SQL语句其具体流程如图1所示。
图1 SQL优化系统流程
2.5、应用优化
应用优化是指除了对数据库整体优化之外,合理调整应用访问数据库的设计及SQL语句。其效果通常比数据库整体优化的效果要好得多。数据库设计优化。在数据库设计上我们的总体原则仍然是I/O和内存这两方面的考虑。具体包括:尽量将表空间的数据文件分散在不同磁盘上;将常用的数据存放在I/O性能好的磁盘上;使用分区表;合理创建索引及适度数据冗余等。前两项很好理解,不再赘述。分区表是当前主流数据库均支持的一项技术,它将一个数据表中的数据按照一定的算法分散至不同的子表中,ORACLE数据库支持范围分区、列表分区、Hash分区(散列分区)、复合分区。将一个大的数据表分割成多个子表可以改善查询性能、增强可用性、维护方便以及均衡I/O。合理创建索引及适度数据冗余均是以空间换时间的方法。索引可以帮助我们快速查询和排序,但是如果索引过多将会影响数据插入、删除、更新等操作的效率。另一方面,在进行数据查询时如果有过多表关联,SQL语句的执行速度会大大降低,为了避免不必要的关联,适度的数据冗余是很好的解决办法。
3、结语
数据库的调优主要从数据库整体、应用软件两个方面调整,数据库整体方面的调优包括内存调优和I/O调优,他们的目标就是硬件资源利用最大化。应用软件调优主要包括数据库设计调优和SQL语句调优两部分,由于其针对性强,所以其效果往往比整体调优效果要好。数据库优化是一个长期的、渐进的系统过程,这个过程不能一步到位,往往是一个由分析到调整,由调整再到检验的循环过程。这需要读者自己在长期的工作中慢慢摸索与积累
参考文献
[1]谭磊.基于等待事件的Oracle数据库调优与实时监控研究[D].成都理工大学,2010.
[2]杨阳.Oracle数据库的调优[J].软件导刊,2007,21:135-137.
[3]陈勇.Oracle数据库性能调优的研究[J].软件,2013,07:143+145.
[4]孙红艳.Oracle数据库性能调优方法探析及数据库分离技术[J].电子技术,2011,09:11-12.