Oracle数据库常见的瓶颈问题与性能监测工具

上传人:luobi****88888 文档编号:133229690 上传时间:2020-05-25 格式:DOC 页数:63 大小:512.50KB
返回 下载 相关 举报
Oracle数据库常见的瓶颈问题与性能监测工具_第1页
第1页 / 共63页
Oracle数据库常见的瓶颈问题与性能监测工具_第2页
第2页 / 共63页
Oracle数据库常见的瓶颈问题与性能监测工具_第3页
第3页 / 共63页
Oracle数据库常见的瓶颈问题与性能监测工具_第4页
第4页 / 共63页
Oracle数据库常见的瓶颈问题与性能监测工具_第5页
第5页 / 共63页
点击查看更多>>
资源描述

《Oracle数据库常见的瓶颈问题与性能监测工具》由会员分享,可在线阅读,更多相关《Oracle数据库常见的瓶颈问题与性能监测工具(63页珍藏版)》请在金锄头文库上搜索。

1、内容摘要:数据库系统的性能最终了决定数据库的可用性和生命力。大多数数据库系统在运行一段时间后都会存在一定的性能问题,主要涉及数据库硬件、数据库服务器、数据库内存、应用程序、操作系统、数据库参数等方面。因此,基于数据库系统的性能调整与优化对于整个系统的正常运行起着至关重要的作用。数据库性能调整与优化涉及到多个层面,通过统一规划、系统分析做出相应的调整,可以提高数据库的稳定性和可用性,保障系统高效地运行,解决系统瓶颈,节约系统开销,具有良好的应用价值,同时也对理论研究提供了一定的方法指导。基于此,论文将Oracle 10g数据库的内存分配、磁盘I/O以及SQL语句等方面的性能调整与优化问题作为主要

2、研究内容,对其进行了深入地分析和讨论,给出了一般情况下Oracle数据库应用系统的性能调整策略及优化方法。关键词:Oracle 10g 数据库;体系结构;系统全局区;性能调整与优化 AbstractAbstract: The performance of database systems eventually determines their availability and survivability. Most of them will bring about some performance problems more or less after running for a period

3、 of time, which mainly involve database hardware, database server, database memory, applications, operating systems and database parameters, etc. Therefore,performance tuning and optimization of database systems,which concern multiple aspects, are very vital to the normal running of the whole system

4、. We can improve the stability and availability of database, guarantee its high running efficiency, solve system bottleneck, reduce system overhead, obtain considerable applicability and in them meanwhile, provide some guidelines for theoretical research through a unified plan and systematical analy

5、sis to make appropriate adjustment.Based on the above-mentioned idea, the paper principally pays attention to the research on the performance tuning and optimization problems of memory allocation of Oracle 10g, disc I/O, SQL statements, etc, and makes a further analysis and discuss. Besides, it prov

6、ides some performance tuning strategies and optimization approaches of Oracle application system in general condition. Key Words: Oracle 10g Database不Architecture不System Global Area不 Adjustment and Optimization of Performance1 导言网格技术是本世纪初最新和最有吸引力的技术之一,数据库管理系统作为信息系统的基本支撑在信息化建设中扮演着重要的要色。目前的Oracle 10g数

7、据库是业界首个为网格计算而设计的数据库,是一种高效率、可靠性好的适应高吞吐量的数据库解决方案,该方案可让客户将多台标准服务器系统整合成一套可扩充的容错运算平台。然而,随着数据库规模的扩大及用户数量的增加,数据库应用系统的响应速度下降,性能问题越来越突出。Oracle 10g数据库系统体系结构庞大、技术细节繁杂,如何合理有效地建立基于Oracle的数据库系统及如何调整使系统性能达到最优,成为Oracle数据库应用领域的热点问题。本课题通过对Oracle 10g数据库系统的深入分析,设计一套完整的Oracle数据性能评测指标和方法,并针对发现的性能问题制定相应的性能优化策略。 2 Oracle 1

8、0g体系结构Oracle数据管理系统是Oracle实例(Instance)和Oracle数据库构成的。下面是Oracle 10g数据库的体系结构图:图1 Oracle 10g数据库体系结构2.1 ORACLE实例Oracle 实例包括系统全局共享区System Global Are 和后台进程Background Process。2.1.1 系统全局共享区System Global Area(SGA)System Global Area 是一块巨大的共享内存区域,他被看做是Oracle 数据库的一个大缓冲池,这里的数据可以被ORACLE的各个进程共用1。其大小可以通过如下语句查看:SQL se

9、lect * from v$sga;NAME VALUE- -Fixed Size 39816Variable Size 259812784Database Buffers 1.049E+09Redo Buffers 327680主要包括以下几个部分:2.1.1.1 共享池(Shared pool)共享池是SGA中最关键的内存片段,特别是在性能和可伸缩性上。一个太小的共享池会扼杀性能,使系统停止,太大的共享池也会有同样的效果,将会消耗大量的CPU来管理这个共享池。不正确的使用共享池只会带来灾难。共享池主要又可以分为以下两个部分:(1)SQL语句缓冲(Library Cache)当一个用户提交一

10、个SQL语句,Oracle会将这句SQL进行分析(parse),这个过程类似于编译,会耗费相对较多的时间。在分析完这个SQL,Oracle会把他的分析结果给保存在Shared pool的Library Cache中,当数据库第二次执行该SQL时,Oracle自动跳过这个分析过程,从而减少了系统运行的时间。这也是为什么第一次运行的SQL 比第二次运行的SQL要慢一点的原因。下面举例说明parse的时间SQL select count(*) fromscpass ;COUNT(*)-243Elapsed: 00:00:00.08这是在Share_pool 和Data buffer 都没有数据缓冲区

11、的情况下所用的时间SQL alter system flush SHARED_POOL;System altered.清空Share_pool,保留Data bufferSQL select count(*) from scpass ;COUNT(*)-243Elapsed: 00:00:00.02SQL select count(*) from scpass ;COUNT(*)-243Elapsed: 00:00:00.00从两句SQL 的时间差上可以看出该SQL 的Parse 时间约为00:00:00.02。对于保存在共享池中的SQL语句,可以从V$Sqltext、v$Sqlarea中查询

12、到,对于编程者来说,要尽量提高语句的重用率,减少语句的分析时间。一个设计的差的应用程序可以毁掉整个数据库的Share pool,提高SQL语句的重用率必须先养成良好的变成习惯,尽量使用Bind变量。(2)数据字典缓冲区(Data Dictionary Cache)显而易见,数据字典缓冲区是ORACLE特地为数据字典准备的一块缓冲池,供ORACLE内部使用。 2.1.1.2 块缓冲区高速缓存(Database Buffer Cache)这些缓冲是对应所有数据文件中的一些被使用到的数据块。让他们能够在内存中进行操作。在这个级别里没有系统文件,户数据文件,临时数据文件,回滚段文件之分。也就是任何文件

13、的数据块都有可能被缓冲。数据库的任何修改都在该缓冲里完成,并由DBWR进程将修改后的数据写入磁盘2。这个缓冲区的块基本上在两个不同的列表中管理。一个是块的“脏”表(Dirty List),需要用数据库块的书写器(DBWR)来写入,另外一个是不脏的块的列表(Free List),一般的情况下,是使用最近最少使用 (Least Recently Used,LRU)算法来管理。块缓冲区高速缓存又可以细分为以下三个部分(Default pool,Keep pool,Recycle pool)。如果不是人为设置初始化参数(Init.ora),ORACLE将默认为Default pool。由于操作系统寻址

14、能力的限制,不通过特殊设置,在32位的系统上,块缓冲区高速缓存最大可以达到1.7G,在64位系统上,块缓冲区高速缓存最大可以达到10G。2.1.1.3 重做日志缓冲区(Redo log buffer)重做日志文件的缓冲区,对数据库的任何修改都按顺序被记录在该缓冲,然后由LGWR进程将它写入磁盘。这些修改信息可能是DML语句,如(Insert,Update,Delete),或DDL语句,如(Create,Alter,Drop等)。 重做日志缓冲区的存在是因为内存到内存的操作比较内存到硬盘的速度快很多,所以重作日志缓冲区可以加快数据库的操作速度,但是考虑的数据库的一致性与可恢复性,数据在重做日志缓

15、冲区中的滞留时间不会很长。所以重作日志缓冲区一般都很小,大于3M之后的重作日志缓冲区已经没有太大的实际意义。2.1.1.4 Java程序缓冲区(Java Pool)Java 的程序区,Oracle 8I 以后,Oracle 在内核中加入了对Java的支持。该程序缓冲区就是为Java 程序保留的。如果不用Java程序没有必要改变该缓冲区的默认大小。2.1.1.5 大池(Large Pool)大池的得名不是因为大,而是因为它用来分配大块的内存,处理比共享池更大的内存,下面对象使用大池:l MTS在SGA的Large Pool中分配UGA。l 语句的并行查询(Parallel Execution of Statements)允许进程间消息缓冲区的分配,用来协调并行查询服务器。l 备份(Backup)用于RMAN磁盘I/O缓存。2.1.2 后台进程(Background process)后台进程是Oracle的程序,用来管理数据库的

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > IT计算机/网络 > 数据结构与算法

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号