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

2022-09-11

进入信息社会来, 越来越多的信息都保存成电子形式, 数据库作为信息的承载者, 发挥着重要的作用, 但不可避免的是数据库系统的性能问题突显, 因此如何对数据库系统进行性能优化是至关重要的。Oracle是使用最广泛的大型数据库之一, 使用Oracle的应用系统规模也比较大, 需要处理的连接数和事务都是较多的, 对于这些系统来讲效率是最重要的指标之一, 因此经常性地调整可以优化应用系统的性能, 防止系统出现瓶颈。

1 影响Oracle性能的因素

Oracle系统性能受到数据库运行的诸多方面的影响与制约, 包括数据库及其配置、操作系统、设计、应用程序。

1.1 数据库及其配置

数据库是整个系统的核心, 它的性能直接影响到整个系统的性能。如果对数据库系统的选用和数据库系统的配置不恰当的话, 对系统的设计到最终的使用都是一种灾难, 所以务必做好详细的规划。

1.2 操作系统

操作系统不是数据库, 但是数据库的基础, 作为数据库运行的平台, 在性能或多或少会对整个系统造成影响, 尤其是在安全性方面。

1.3 设计

应用程序的设计是整个系统的灵魂, 一个好的设计对系统性能会有很大帮助, 而一个欠佳的设计最佳的修改时期就是在设计时期, 越晚修改付出的代价也就越大。

1.4 应用程序

应用程序中SQL语句的编写、数据库连接方式的选择、数据库端程序设计以及数据库对象的使用情况等, 都影响系统的执行效率。

以上几方面影响性能的比例据统计分别依次占:17.5%、2.5%、20%、60%。

2 Oracle性能调整的目标

即使是在系统维护阶段, 也需要建立数据库性能的目标, 通过对比才能知道何时需要做出调整, 调整的方法从当时设计系统时是如何考虑的出发, 进行操作系统的硬件或软件的调整, 确定问题原因, 采取有效措施。

当进行系统设计时, 制定专门的目标。当检测到使用过程中系统不能满足此目标了, 查找问题原因, 采取纠正措施。在开发期间, 应在实际环境中测试应用, 确定在采取应用之前是否满足设计的性能目标。当正在维护系统时, 可以用Oracle工具 (例如A W R、A D D M) 来监视数据库运行的状态。无论如何, 调整通常是一系列开销。一旦找到, 可能会要牺牲一些其它方面的指标来达到所要的结果。例如, 如果I/O竞争太大, 可能需要更多内存或磁盘。如果不可能添加设备的话, 可能就需要限制系统的并发或连接数, 以得到所需要的性能。当面对如何进行各方面的取舍时, 你必需要明白:哪些方面是最重要, 那就可以用其它方面来换取这一方面的性能。随着应用的规模越来越庞大, 全面的调整应用逐渐变成代价高昂的行为, 在这情况下, 要取得最大的效率/投入之比, 较好的办法是调整应用的关键部分, 使其达到比较高的性能, 这样从总体上来说, 整个系统的性能也是比较高的。这也就是有名的20/80原则, 调整应用的20% (关键部分) , 能解决80%的问题。

3 数据库性能的优化

3.1 明确哪些是要和计算机交互的资源

在计算机中磁盘I/O, 内存, CPU、网络和Process是与数据库打交道最多的资源了, 如何合理分配利用这些资源, 并且需要充分考虑到几种资源不同的延时, 就对数据库的性能有很大的影响了。

磁盘I/O是这几种资源中最耗时间的, 因为磁盘是机械的设备, 延时比较大, 而硬盘的转速在一定时期内想再提高是比较难的, 所以只能是从并行性考虑此问题, 如何提高I/O的并行涉及Oracle数据库系统存取的原理, 需要理解清楚在进行数据库操作时什么条件下会引起磁盘的读写, 有了这些知识就可以在这个基础上进行优化了。

如何合理使用计算机内存也会对数据库的性能造成较大的影响, Oracle数据库中最为主要的内存区域是SGA (System Global Area) , 所有的数据库线程、共享池以及缓存区都使用这一块区域, 所以如果分配太少内存给这块区域使用, 就会大大降低数据库的整体性能, 但如果分配得太多内存, 就会限制了操作系统性能, 因此在分配SGA的大小一般占主机内存的一半。

在CPU、网络和Process方面对数据库的影响较以上两方面小, 在服务器中C P U的数量越来越多, 线程数也越来越大, 在C P U处理能力上的瓶颈的情况也较少出现, 而网络的瓶颈一般出现在C/S架构上, 如果在设计之初没有定好网络流量的目标, 数据库操作的语句没有规划好写在客户端还是服务器上, 当数据库访问量变大后, 对网络的流量压力将会突显, 因此一般大的SQL语句或操作建议放在服务器端以存储过程形式来运行。另外, 因为Oracle连接模式有专用模式和共享模式之分, 所以采取共享模式来连接数据库可以达到节省一部分服务器资源的目标, 但是Oracle的共享模式不是非常完善, 而且在很多操作时需要用到专用模式连接, 因此往往很少会使用共享模式来连接数据库, 而使用专用模式连接+连接共享池 (中间层来提供) 的模式设计系统。

3.2 针对磁盘I/O调整原则

首先要建立贯穿整个应用的设计思想:最小化I/O的访问。主要的方法以下几点。

均衡各类文件 (控制文件、数据文件、日志文件、归档文件和临时文件) 的分布。

(1) 控制文件:单独存放, 镜像不要过多, 2份足以。

(2) 日志文件单独存放, 不要放在R A I D 5上, M E M B E R不要过多, 2份足以。

(3) UNDO文件单独存放。

(4) 数据文件尽可能的要分散, 尤其是分区表和分区索引所存储的数据文件。

(5) 临时文件单独存放, 不同的用户使用不同的临时表空间, 最好能使用临时表空间组。

(6) 索引和数据文件分离, 对I/O影响不大, 便于管理 (根据索引的原理ROWID) 。

(7) 归档文件和所有其他文件分离, 更务必和日志文件绝对分离。

4 结语

Oracle数据库系统性能优化与调整是一个复杂、繁琐的系统工程, 贯穿于数据库系统开发的整个过程。本文就磁盘I/O的优化和调整进行研究, 但数据库系统的优化和调整还包括内存结构调整、磁盘碎片调整以及CPU性能调整等, 应该充分利用各种性能优化与调整策略进行反复的调整, 以获得系统的最优性能。

摘要:Oracle数据库性能优化对于保证系统安全, 信息安全, 业务正常运作具有重要影响。全文首先简要阐述了影响Oracle性能的因素, 然后提出确定Oracle性能调整目标的必要性, 最后介绍了Oracle数据库系统性能优化技术。

关键词:Oracle,数据库,优化

参考文献

[1] 甄福东.Oracle 10g数据库系统性能优化与调整[J].电脑知识与技术, 2010.

[2] 韩云波, 宋莉.Oracle性能调整技术研究[J].电脑知识与技术, 2010.

[3] 徐玉金.sql性能的调整-总结.2005.

[4] 谢永生.高性能数据库设计.2010.

本文来自 99学术网(www.99xueshu.com),转载请保留网址和出处

上一篇:黄冈革命对马克思主义中国化的积极影响下一篇:掘进巷道探放水施工技术研究