知识大全 Oracle性能优化的基本方法概述

Posted 事件

篇首语:真正的知识使人真正地、实实在在地胜过他人。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 Oracle性能优化的基本方法概述相关的知识,希望对你有一定的参考价值。

Oracle性能优化的基本方法概述  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

   )设立合理的性能优化目标 )测量并记录当前性能 )确定当前Oracle性能瓶颈(Oracle等待什么 哪些SQL语句是该等待事件的成分) )把等待事件记入跟踪文件 )确定当前的OS瓶颈 )优化所需的成分(应用程序 数据库 I/O 争用 OS等) )跟踪并实施更改控制过程 )测量并记录当前性能 )重复步骤 到 直到满足优化目标

   .设立合理的性能优化目标重点 关于设立目标的最重要的一点是它们必须是可量化和可达到的 方法 目标必须是当前性能和所需性能的的陈述形式的语句 只需填写下列语句中的空格即可         花费了        (时/分/秒) 但要求它在        (时/分/秒)内执行         使用了        (资源量) 但它不能使用超过       

   . 测量并记录当前性能重点 ( )需要在峰值活动时间获得当前系统性能快照( )关键是要在出现性能问题的时间段内采集信息( )必须在合理的时间段上采集 一般在峰值期间照几个为期 分钟的快照方法 执行STATSPACK 建立性能快照表空间sqlplus sys as sysdbacreate tablespace perfstat datafile /u /oradata/dbnms/perfstat dbf size M extent management local;  安装STATSPACK @$ORACLE_HOME/rdbms/admin/spcreate sql;  获取性能数据 可以生成多个快照 sqlplus perfstat execute statspack snap;   生成性能快照的报表 sqlplus perfstat select min(snap_id) snapid_min max(snap_id) snapid_max from stats$snapshot; @$ORACLE_HOME/rdbms/admin/spreport;  该报告中有关于性能的重要信息 如前 位的等待事件 cache大小 各种内存结构的命中率 每秒及每事务逻辑 物理读写数据块数 性能最差的sql语句等

   . 确定当前Oracle性能瓶颈重点 从Oracle 等待接口v$system_event v$session_event和v$session_wait中获得等待事件 进而找出影响性能的对象和sql语句方法 首先 利用v$system_event视图执行下面的查询查看数据库中某些常见的等待事件 select * from v$system_evenhere event in ( buffer busy waits          db file sequential read    db file scattered read    enqueue    free buffer waits    latch free    log file parallel write    log file sync ); 接着 利用下面对v$session_event和v$session视图进行的查询 研究具有对上面显示的内容有贡献的等待事件的会话 select se sid s username se event se total_waits se time_waited se average_waitfrom v$session s v$session_event sewhere s sid = se sidand se event not like SQL*Net% and s status = ACTIVE and s username is not null; 使用下面查询找到与所连接的会话有关的当前等待事件 这些信息是动态的 为了查看一个会话的等待最多的事件是什么 需要多次执行此查询 select sw sid s username sw event sw wait_time sw state sw seconds_in_wait SEC_IN_WAITfrom v$session s v$session_wait swwhere s sid = sw sidand sw event not like SQL*Net% and s username is not nullorder by sw wait_time desc; 查询会话等待事件的详细信息select sid event p text p p text p p text p from v$session_waihere sid beeen & and & and event not like %SQL% and event not like %rdbms% ; 利用P P 的信息 找出等待事件的相关的段select owner segment_name segment_type tablespace_namefrom dba_extentswhere file_id = &fileid_inand &blockid_in beeen block_id and block_id + blocks ; 获得操作该段的sql语句 select sid getsqltxt(sql_hash_value sql_address)from v$sessionwhere sid = &sid_in; getsqltxt函数create or replacefunction GetSQLtxt (hashaddr_in in v$sqltext hash_value%type        addr_in in v$sqltext address%type)return varchar is temp_sqltxt varchar ( ); cursor sqlpiece_cur is  select piece sql_text  from v$sqltext  where hash_value = hashaddr_in  and address = addr_in  order by piece;begin for sqlpiece_rec in sqlpiece_cur loop  temp_sqltxt := temp_sqltxt || sqlpiece_rec sql_text; end loop; return temp_sqltxt;end GetSQLtxt; 至此已经找到影响性能的对象和sql语句 可以有针对性地优化

   . 把等待事件记入跟踪文件重点 如果在跟踪系统上的等待事件时 由于某种原因遇到了麻烦 则可以将这些等待事件记入一个跟踪文件 方法 对于当前会话 alter session set timed_statistics=true;alter session set max_dump_file_size=unlimited;alter session set events trace name context forever level ; 执行应用程序 然后在USER_DUMP_DEST指出的目录中找到跟踪文件 查看文件中以词WAIT开始的所有行

   对于其它的会话 确定会话的进程ID(SPID) 下面的查询识别出名称以A开始的所有用户的会话进程ID select S Username P Spid from V$SESSION S V$PROCESS Pwhere S PADDR = P ADDR and S Username like A% ; 以 sysdba 进入sqlplus执行alter session set timed_statistics=true;alter session set max_dump_file_size=unlimited;oradebug setospid <SPID>oradebug unlimitoradebug event trace name context forever level X /* Where X = ( ) */ 跟踪某个时间间隔得会话应用程序 在USER_DUMP_DEST 的值指出的目录中利用SPID查看跟踪文件 查看文件中以词WAIT开始的所有行

   . 确定当前OS瓶颈( )Windows NT上的监控使用控制面板 〉管理工具 〉性能即可

  ( )UNIX上的监控使用通用性的工具 包括sar iostat cpustat mpstat netstat top osview等 ) CPU使用情况sar u %sys和%wio的数值应该小于百分之 到 ) 设备使用情况sar d 在%busy超过 %时 最佳设备利用率开始降低 在具有足够磁盘高速缓存的系统上 认为avserv为 毫秒的值非常高 ) 虚拟内存使用情况vmstat S 执行队列(r)应该明确的平均小于( *CPU数目)

   .优化所需的成分(应用程序 数据库 I/O 争用 OS等)

   .跟踪并实施更改控制过程

   .测量并记录当前性能

cha138/Article/program/Oracle/201311/18162

相关参考

知识大全 九大Oracle性能优化基本方法详解

九大Oracle性能优化基本方法详解  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Oracle

知识大全 Java程序性能优化-性能概述

Java程序性能优化-性能概述  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  第章 J

知识大全 用智能优化限制来提高Oracle性能

用智能优化限制来提高Oracle性能  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  Oracle

知识大全 使用资源管理器优化Oracle性能

使用资源管理器优化Oracle性能  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  操作系统优化 

知识大全 Oracle设置系统参数进行性能优化

Oracle设置系统参数进行性能优化  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一SGA  

知识大全 Oracle性能优化:droptable与dbcache

Oracle性能优化:droptable与dbcache  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下

知识大全 关于ORACLE性能优化的好例子

关于ORACLE性能优化的好例子  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  ORACLEX版

知识大全 Oracle数据库系统性能优化策略

Oracle数据库系统性能优化策略  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  一个数据库系统

知识大全 oracle性能34条优化技巧

  ()选择最有效率的表名顺序(只在基于规则的优化器中有效)  ORACLE的解析器按照从右到左的顺序处理FROM子句中的表名FROM子句中写在最后的表(基础表drivingtable)将被最先处理在

知识大全 使用智能优化器提高Oracle的性能极限

使用智能优化器提高Oracle的性能极限  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!  消耗在准