《Oracle数据库系统优化.pptx》由会员分享,可在线阅读,更多相关《Oracle数据库系统优化.pptx(21页珍藏版)》请在得力文库 - 分享文档赚钱的网站上搜索。
1、第十五章:Oracle 优化学习目标15.1 Oracle性能介绍15.2 系统设计优化15.3 内存优化15.4 I/O优化15.5 SQL语句优化15.1 Oracle性能优化概述优化(Tuning)。1、性能调整需要的角色分配2、应用周期中调整的代价3、数据库性能优化重点4、数据库性能优化目标5、数据库性能优化基本方法15.2 系统设计优化绝大多数专家认为绝大多数系统效率的问题都是设计上的缺陷造成的,如果Oracle设计合理,SQL程序效率较好,硬件可以满足用户的需求,DBA定期检视数据库的运行并及时地消除了影响系统效率的瓶颈,那么这个数据库系统几乎不会遇到效率的问题。所以如果一个糟糕的
2、数据库系统设计,即使后期进行大量内存优化和I/O优化工作也会变得徒劳无益。系统设计必须了解数据库系统的分类,以及不同系统在设计上的不同要求。15.3 内存优化通过合理的分配内存大小,合理地设置表空间体系和内部空间参数,可以提高磁盘空间的利用率、减少数据段碎片,并且在查询和向数据文件写入数据时使用较少的I/O,较少的I/O会降低CPU的资源消耗。同时,对环境参数的合理配置,可以使数据库中数据顺畅地流动,减少锁冲突和各种等待,充分地利用系统资源。15.3.1 SGA内存优化SGA相关静态参数1、sga_max_size2、lock_sag3、pre_page_sga4、sga_target (1)
3、该值为0,则代表非没有启动SGA自动管理 (2)该值非0,则代表启动了SGA自动管理,但是 需要注意以下下几点:要使用自动SGA内存管理,STATISTICS_LEVEL参数必须设为TYPICAL或ALL,系统自动收集相应的信息用来动态调整SGA设定。可以设定某个组件的值,Oracle使用此值为该组件的最小大小。可动态调整的参数:DB_CACHE_SIZE,SHARED_POOL_SIZE,LARGE_POOL_SIZE,JAVA_POOL_SIZE。需手动设置的参数:LOG_BUFFER,STREAMS_POOL,DB_NK_CACHE_SIZE,DB_KEEP_CACHE_SIZE,DB_
4、RECYCLE_CACHE_SIZE。15.3.2 PGA内存优化目前的版本都支持内存排序区的自动化管理。要使用内存排序区的自动管理这一功能,必须使用两个Oracle系统参数,分别为PGA_aggregate_target和workarea_size_policy。15.4 I/O优化 I/O优化:就是要减少I/O,如果无法减少I/O,那就去想办法将I/O操作平衡到不同的硬盘上。15.4.1 Oracle中I/O的产生集合Oracle数据库物理存储架构,数据库物理文件增长情况和测试发现,给I/O带来很大负荷的是redo log文件、数据文件与索引文件的读写。当数据量、性能和持续压力时间都达到一
5、定量时候,这三者产生的I/O负荷相当,因此降低磁盘I/O最终归根解读就是降低这三类文件的I/O。15.4.2 I/O竞争文件和方法1、I/O文件的分布与方法2、I/O竞争数据的分布与方法15.4.3 I/O物理文件的优化1、文件监控与诊断2、表的I/O优化3、索引的I/O优化15.4.4 I/O调优的其他手段1、通过SQL调优来减少I/O请求2、通过调整实例参数来减少I/O请求3、在操作系统层面优化I/O4、通过Oracle ASM实现对I/O的负载平衡5、通过条带化、RAID、SAN、NAS实现对I/O的负载平衡6、通过手工布置数据库文件到不同的文件系统、控制器和物理设备上来重新分布数据库I
6、/O15.5 SQL语句优化随着数据库中数据的增加,系统的响应速度就成为目前系统需要解决的主要问题之一,系统优化中一个很重要的方面就是SQL语句的优化。大量的数据指出劣质的SQL语句和优质的SQL语句之间的速度差别可以达到上百倍,对一个系统不是简单的能实现功能就可以,而是要写出高质量的SQL语句提高系统的可用性。15.5.1 SQL语句优先原则1、不要让oracle进行太多的操作2、给优化器明确的命令3、减少访问次数4、注意细节影响15.5.2 语句执行计划对于SQL调优,如果针对的是整个系统,则可以用Oracle系统自带的报告对系统进行整体分析,Oracle提供好几种性能分析的报告,比如AW
7、R、ASH、ADDM等等。局部SQL,我们可以直接使用执行计划等直接调优,那么执行计划又是什么呢?简单的说一个执行计划就是在执行一条SQL语句和相关的操作时,优化器所执行的一组步骤。一个执行计划包括了该语句需访问的每一个表的访问方法以及访问这些表的顺序。下来给大家简单介绍一下几种常用而简单易学的获取SQL语句执行计划的方法。方法方法1.利用利用autotrace追踪追踪SQL语句语句(1)追踪SQL语句(2)观察所获取的执行计划,获取与性能优化操作的相关信息,比较分析造成效率下降的原因。(3)利用执行计划做出性能相关的决策。2.利用Explain Plan命令另外个一种比较常用的SQL语句追踪方法就是:方法2:EXPLAIN PLAN 命令 explain plan命令被用来产生一个优化器所使用的执行计划,这一命令将所产生的执行计划存储在一个表中,系统默认为表plan_table中,但是该命令并不真正地执行语句,而只是产生可能使用的执行计划,如果仔细地观察这一执行计划,就可以了解到服务器是如何执行所解释的SQL语句。总结Oracle性能管理既是一门艺术,也是一门科学。既需要主动出击也需要被动防守。
限制150内