预览加载中,请您耐心等待几秒...
1/4
2/4
3/4
4/4

在线预览结束,喜欢就下载吧,查找使用更方便

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

Oracle数据库的性能优化与调整HYPERLINK"https://m.zqwdw.com/wenku/jiaoyujiaoxue/2020/0915/717125.html"摘要:Oracle数据库性能优化对于保证系统安全,信息安全,业务正常运作具有重要影响。全文首先简要阐述了影响Oracle性能的因素,然后提出确定Oracle性能调整目标的必要性,最后介绍了Oracle数据库系统性能优化技术。关键字:Oracle数据库优化中图分类号:TP3文献标识码:A文章编号:1672-3791(2011)02(a)-0000-00进入信息社会来,越来越多的信息都保存成电子形式,数据库作为信息的承载者,发挥着重要的作用,但不可避免的是数据库系统的性能问题突显,因此如何对数据库系统进行性能优化是至关重要的。Oracle是使用最广泛的大型数据库之一,使用Oracle的应用系统规模也比较大,需要处理的连接数和事务都是较多的,对于这些系统来讲效率是最重要的指标之一,因此经常性地调整可以优化应用系统的性能,防止系统出现瓶颈。一、影响Oracle性能的因素Oracle系统性能受到数据库运行的诸多方面的影响与制约,包括数据库及其配置、操作系统、设计、应用程序。1、数据库及其配置数据库是整个系统的核心,它的性能直接影响到整个系统的性能。如果对数据库系统的选用和数据库系统的配置不恰当的话,对系统的设计到最终的使用都是一种灾难,所以务必做好详细的规划。2、操作系统操作系统不是数据库,但是数据库的基础,作为数据库运行的平台,在性能或多或少会对整个系统造成影响,尤其是在安全性方面。3、设计应用程序的设计是整个系统的灵魂,一个好的设计对系统性能会有很大帮助,而一个欠佳的设计最佳的修改时期就是在设计时期,越晚修改付出的代价也就越大。4、应用程序应用程序中SQL语句的编写、数据库连接方式的选择、数据库端程序设计以及数据库对象的使用情况等,都影响系统的执行效率。以上几方面影响性能的比例据统计分别依次占:17.5%、2.5%、20%、60%。二、Oracle性能调整的目标即使是在系统维护阶段,也需要建立数据库性能的目标,通过对比才能知道何时需要做出调整,调整的方法从当时设计系统时是如何考虑的出发,进行操作系统的硬件或软件的调整,确定问题原因,采取有效措施。当进行系统设计时,制定专门的目标。当检测到使用过程中系统不能满足此目标了,查找问题原因,采取纠正措施。在开发期间,应在实际环境中测试应用,确定在采取应用之前是否满足设计的性能目标。当正在维护系统时,可以用Oracle工具(例如AWR、ADDM)来监视数据库运行的状态。无论如何,调整通常是一系列开销。一旦找到,可能会要牺牲一些其它方面的指标来达到所要的结果。例如,如果I/O竞争太大,可能需要更多内存或磁盘。如果不可能添加设备的话,可能就需要限制系统的并发或连接数,以得到所需要的性能。当面对如何进行各方面的取舍时,你必需要明白:哪些方面是最重要,那就可以用其它方面来换取这一方面的性能。随着应用的规模越来越庞大,全面的调整应用逐渐变成代价高昂的行为,在这情况下,要取得最大的效率/投入之比,较好的办法是调整应用的关键部分,使其达到比较高的性能,这样从总体上来说,整个系统的性能也是比较高的。这也就是有名的20/80原则,调整应用的20%(关键部分),能解决80%的问题。三、数据库性能的优化1、明确哪些是要和计算机交互的资源在计算机中磁盘I/O,内存,CPU、网络和Process是与数据库打交道最多的资源了,如何合理分配利用这些资源,并且需要充分考虑到几种资源不同的延时,就对数据库的性能有很大的影响了。磁盘I/O是这几种资源中最耗时间的,因为磁盘是机械的设备,延时比较大,而硬盘的转速在一定时期内想再提高是比较难的,所以只能是从并行性考虑此问题,如何提高I/O的并行涉及Oracle数据库系统存取的原理,需要理解清楚在进行数据库操作时什么条件下会引起磁盘的读写,有了这些知识就可以在这个基础上进行优化了。如何合理使用计算机内存也会对数据库的性能造成较大的影响,Oracle数据库中最为主要的内存区域是SGA(SystemGlobalArea),所有的数据库线程、共享池以及缓存区都使用这一块区域,所以如果分配太少内存给这块区域使用,就会大大降低数据库的整体性能,但如果分配得太多内存,就会限制了操作系统性能,因此在分配SGA的大小一般占主机内存的一半。在CPU、网络和Process方面对数据库的影响较以上两方面小,在服务器中CPU的数量越来越多,线程数也越来越大,在CPU处理能力上的瓶颈的情况也较少出现,而网络的瓶颈一般出现在C/S架构上,如果在设计之初没有定好网络流量的目标,数据库操作的语句没有规划好写在客户端还是服务器上,当数据库