当前位置:文档之家› Oracle数据库技术课程报告

Oracle数据库技术课程报告

课程报告(20 15 -20 16 学年第 1 学期)报告题目(与Oracle有关的某一方面知识介绍,一级标题,三号字,宋体,居中,加粗)一、目的与要求(二级标题,四号字,宋体,顶格,加粗)(正文小四号字,宋体)二、设计内容等(字数3000字以上)1、(三级标题,小四号字,宋体,顶格,加粗)(正文小四号字,宋体)参考文献(至少列出三个,标题五号,宋体,加粗,居中)参考文献内容(五号、宋体;英文用五号,Times New Roman)其他格式要求:(A4纸):左边距:25mm,右边距:25mm,上边距:30mm,下边距:25mm,页眉边距:23mm,页脚边距:18mm 字符间距:标准行距:倍左侧装订可加附页。

此处要求写报告时删去。

上交时间:12月4日。

oracle数据库性能优化一、目的与要求:oracle数据库性能优化对于保证系统安全,信息安全,业务正常运作具有重要影响。

全文首先简要介绍了oracle数据库及特点,然后对数据库性能的评价指标做出一般性概述。

随后从CPU利用和内存分配这两方面阐述了数据库性能优化的主要方向。

最后介绍了oracle数据库应用系统性能优化技术,即sql语句优化,oracle内存调整,oracle 表空间调整。

信息化系统都基于数据库而运行,而数据库系统性能又最大程度的决定着应用系统的性能。

大多数数据库系统在运行一段时间后都会存在一定的性能问题,主要涉及数据库硬件、数据库服务器、数据库内存、应用程序、操作系统、数据库参数等方面。

因此,基于数据库系统的性能调整与优化对于整个系统的正常运行起着至关重要的作用。

二、设计内容:1 oracle数据库及特点oracle是一个功能极其强大的数据库系统。

它起始于七十年代末的关系型数据库技术。

这种类型数据库的关键是怎样理解数据间的关系,然后构造反映这些关系的信息库。

oracle成功的将关系型数据库转移到桌面计算机上,提供了一个完整的客户/服务器体系结构的商用DBMs。

同时它利用SQL*NET软件层,与多种操作系统支持通信协议相配合,为oracle关系型数据库提供分布式环境,可以实现单点更新,多点查询。

Oracle数据库已经被用于各种大型信息系统中,特别是诸如银行,保险,烟草,石油等大数据量,对安全性要求较高的企业。

其特点主要体现在:1)支持大数据库、多用户的高性能事务处理Oracle支持最大数据库(几百TB),可充分利用硬件设备。

支持大量用户同时在同一数据上执行各种应用,并使数据争用最小,保证数据的一致性[1]。

2)硬件环境独立。

Oracle具有良好的硬件环境独立性,支持各种类型的大型,中型,小型和微机系统。

3)遵守数据存取语言、操作系统、用户接口和网络通信协议的工业标准。

4)较好的安全性和完整控制。

Oracle有用户鉴别、特权)、角色、触发器、日志、后备等功能,有效地保证了数据存取的安全性和完整性以及并发控制和数据的回复。

5)具有可移植性、可兼容性与可连接性oracle不仅可以在不同型号的机器上运行,而且可以在同一厂家的不同操作系统支持下运行。

具有操作系统的独立性。

2 数据库系统性能评价指标主要从以下几个方面进行:1)系统吞吐量。

吞吐量是指单位时间内数据库完成的SQL语句数目,以每秒钟的事务量(tps)表示。

提高系统吞吐量可以通过减少服务时间在同样的资源环境下做更多的工作或通过减少总的响应时间使工作做得更快这两种方法来实现。

2)用户响应时间。

响应时间是指用户从提交SQL语句开始到获得结果集的第一行所需要的时间,是应用做出反应的时间,以毫秒或秒表示。

响应时间可以分为系统服务时间(CPU时间)和用户等待时间两项。

也就是说,要获得满意的用户响应时间有两个途径:一是减少系统服务时间,即提高数据库的吞吐量;二是减少用户等待时间,即减少用户访问同一数据库资源的冲突率。

3)数据库命中率。

Oracle用户进程所需的所有数据都是经过缓冲区高速缓存来存取的。

用户对数据的需求能否在内存中得到满足,给出快速的响应,可用缓冲区高速缓存命中率来衡量。

该比率等于高速缓存命中总数除以对高速缓存的查找总数。

由于从高速缓存中读数据比从磁盘中读数据的开销要小得多,因此一般应使该命中率足够高。

4)内存使用情况。

内存的使用情况主要体现在可共享内存、永久性内存和运行时内存这三者的分配使用上。

内存是否合理使用,一般考虑的主要调整目标有两条:使投资得到最大回报。

把时间和精力用于解决可能产生最大利益的问题;使争用减到最小。

瓶颈的特点在于延迟和等待,尽可能地消除或减少它。

5)磁盘I/O。

数据库中发生的每个动作几乎都将产生某种类型的I/O活动,该活动可以是逻辑的(在内存中),也可以是物理的(在磁盘上)。

通过降低不必要的I/O开销可以增加用户任务可获得的吞吐量,缩短用户响应时间。

其中,磁盘I/O操作是数据库性能最重要的方面,是计算机最大的开销。

3 oracle数据库应用系统性能优化的主要方向CPU利用CPU是服务器的重要资源,服务器良好的工作状态是在工作高峰时CPU的使用率在90%以上。

在大型的应用系统中,比较流行的配置是oracle+unix,如IBM的小机,sun 公司的red hat等。

这些系统中使用sar-u命令查看CPU的使用率,Windows系列的操作系统的服务器,可以使用性能管理器来查看CPU的使用率。

Oracle中:v$sysstat数据字典中“CPU used by this session”记录了数据库使用的CPU时间,“OS User level CPU time”统计了操作系统用户态下的CPU时间,“OS System call CPU time”统计了操作系统系统态下的CPU时间,操作系统总的CPU时间就是用户态和系统态时间之和,如果Oracle数据库使用的CPU时间占操作系统总的CPU时间90%以上,说明服务器CPU 基本上被Oracle数据库使用着,这是合理,反之,说明服务器CPU被其它程序占用过多,Oracle数据库无法得到更多的CPU时间[2]。

出现CPU资源不足的原因可能是SQL 语句的重解析、低效率的SQL语句、锁冲突等,oracle提供了初步的分析方法:对于SQL语句的重解析可以执行下述语句来查看SQL语句的解析情况:SELECT * FROM V$SYSSTAT WHERENAME IN('parse time cpu','parse time elapsed','parse count(hard)'),其中parse time cpu是系统服务时间,parse time elapsed是响应时间,用户等待时间waite time为两者之差。

由此可以得到用户SQL 语句平均解析等待时间=waite time/parse count。

这个平均等待时间应该接近于0,如果平均解析等待时间过长;对于SQL语句解析效率比较低的问题,可以通过以下方法查询哪些sql需要优化:SELECT SQLJEXT,PARSE CALLS,EXECUTIONS FROM V$SQLAREA,SELECT BUFFER_GETS,EXECUTIONS,SQL_TEXT FROM V$SQLAREA。

对于冲突,可以通过v$system_event数据字典中的“latch free”统计项查看,如果没有冲突的话,latch free 查询出来没有结果。

如果冲突太大的话,可以降低spin_count参数值,来消除高的CPU 使用率。

内存分配内存参数的调整主要是指Oracle数据库的系统全局区SGA(System Global Area)的调整。

SGA是Oracle数据库的心脏,是对数据库数据进行快速访问的一个系统区域,可以被服务器和用户共享。

SGA主要由三部分构成:共享池(SharePool)、数据缓冲区(Data Buffers)、日志缓冲区(Redo Log Buffers)和PGA区域。

SGA随着不同的环境而不同,没有一种通用的最佳方案,但在设置它之前要先考虑以下的几个方面:物理内存多大:操作系统是哪种以及占多大的内存,数据库系统是文件系统还是存储设备;数据库运行的模式。

SGA占有物理内存的比例没有严格的规定,只能遵从一般的规则:SGA 占据物理内存的40%~60%左右。

如果通过直观的公式化来表达则为:OS使用内存+SGA+并发进程数×(Sort_area_size+Hash_area_size+2M)<,以这个公式为参考进行自由调整即可。

初始化参数文件中的一些参数对SGA的大小有决定性的影响。

参数Db_block_Buffers(SGA中存储区高速缓存的缓冲区数目),参数Shared_pool_size(分配给共享SQL区的字节数),是SGA大小的主要影响者。

DataBuffers参数是SGA大小和数据库性能的最重要的决定因素。

该值较高,可以提高系统的命中率,减少I/O。

每个缓冲区的大小等于参数Db_block_size的大小。

Oracle数据库块以字节表【206】第32卷第8期 2010-8示大小。

Oracle SGA区共享池部分由库高速缓存(LibraryCache)、字典高速缓存(Dictionary Cache)及其他一些用户和服务器会话信息组成,共享池是最大的消耗成分。

4 oracle数据库应用系统性能优化技术sql语句优化SQL语句优化的实质就是在结果正确的前提下,用优化器可以识别的语句,充分利用索引来减少表扫描的I/O次数,尽量避免表搜索的发生。

优化的目的就是将性能低下的SQL语句转换成目的相同的、性能优异的SQL语句,使数据查找的路径最简化,并尽量保持处理器时间和I/O时间的平衡。

通常分为以下几个步骤:1)查找有问题的SQL语句。

优化有问题的sql语句能显着提高数据库性能。

寻找的方法有:搜集统计数据,oracle中可以通过DBMSSTATS包或ANALYZE命令,前者可用于搜集有关链接数据行的统计数据,簇的数据情况只能使用ANALYEZ命令获得,其相关语法为ANALYEZE CLUSTER Cluste_name Computer STATISTICS,对于其它情况可以使用DBMS_SATS包,语法为:exec (‘owname’,’tablename’,’partnma e’);利用SQLTrace工具分析SQL 语句。

通过命令ALTER SESSION SET SQL_TRACE=TRUE会话激活SQL_TRACE,oracle就会在udump管理区创建跟踪文件,从而可以了解如解析、执行和返回数据的次数、CPU 时间和执行时间、物理读和逻辑读操作次数、库缓冲区命中率等参数;通过oracle Enterprise Manager Console、Oracle Diagnostics Pack等图形性能工具能够很快地获取到数据库缓冲区命中率、CPU利用率、运行时内存等重要的数据库性能指标信息,并将它们以GUI表格形式和曲线图形式显示出来[3]。

相关主题