ITPub博客

首页 > Linux操作系统 > Linux操作系统 > Oracle调优工具变迁及7种诊断武器

Oracle调优工具变迁及7种诊断武器

原创 Linux操作系统 作者:yanjie512 时间:2012-04-30 12:42:52 0 删除 编辑
 
Oracle调优工具变迁:

1、  Oracle v5

     Debug code

2、  Oracle v6

     Counters/Ratios

     BSTAT/ESTAT

     SQL*Trace

3、  Oracle v7

     Wait Event

     Counters->timers

4、  Oracle 8i

     STATSPACK(盖国强的书里经常提到的一个工具)

5、  Oracle 9i

     Session tuning using 10046 SQL traces

     更全面的STATSPACK

     智能化自动化出现

6、  Oracle 10g

     更自动化、更广泛的搜集

     ASH AWRy ADDM EM

 

 

 

7种诊断武器:

1、  Oracle动态性能视图:

     v$sysstat  v$session  v$sesstat  v$sgastat

     v$filestat  v$undostat  v$rollstat  v$waitstat

     v$lock  v$latch  v$sql  v$sqlarea  v$sqltext

     v$process  v$librarycache  v$rowcache等等

2、  等待事件:

     V$system_event:发现系统问题

     v$session_event:发现会话问题

     v$session_wait:找到竞争对象

     各种等待事件:

     buffer busy waits(数据高速缓存忙等待)

     db file scattered read(数据文件离散读取)

     db file sequential read(数据文件顺序读)

     direct path read(直接路径读取)

     direct path write(直接路径写出)

     enqueue(队列)

     free buffer waits(空闲缓冲区等待)

     latch free(锁存器空闲)

     log buffer space(日志缓冲区空间分配)

     log file switch(archiving needed)

     log file switch(checkpoint incomplete)

     log file sync(日志文件同步)

3、  statspack

     statspack安装:$ORACLE_HOME/rdbms/admin/spcreate.sql

     收集统计信息:$ORACLE_HOME/rdbms/admin/statspack.snap

     自动收集统计信息:$ORACLE_HOME/rdbms/admin/spauto.sql

     生成报表:$ORACLE_HOME/rdbms/admin/spreport.sql

     要收集计时信息设置:TIMED_STATISTICS=True

     Statspack输出包括:

     数据库和实例名称

     获取快照的时间

     当前高速缓存的大小

     负载概览

     实例效率百分比

     前五个等待事件

     等待事件的完整列表

     共享池中SQL语句的信息

     实例活动统计

     表空间和文件I/O

     缓冲区统计信息

     回退段或还原段统计信息

     栓锁活动

     字典高速缓存统计信息

     库高速缓存统计

     SGA统计

     Init.ora参数的启动值

4、  暗中收割:ASH、AWR、ADDM、ADDR

ASH:

Active Session History,可从v$active_session_history获得会话最近的活动信息。

Select a.sql_text from v$sql a where sql_id in(select sql_id from v$active_session_history where session_id = 157)。

直接从内存中获取数据,不保存,仅运行中有效。可通过ashrpt.sql产生ash分析报告。

AWR:

Automatic Workload Repository,默认每隔60分钟保存一次,手动保存7天数据。信息存储在新SYSAUX表空间内,可通过awrrpt.sql产生与statspack类似的性能差异报告。

基本统计:例如物理读取

SQL统计:例如磁盘读取

度量:例如物理读取数量/秒

ADDM:

Automatic Database Diagnostic Monitor,分析依赖于AWRy性能信息快照,对比差异并提供建议,对RAC架构同样适用,分析结果可通过dbms_advisor包的get_task_report过程来获取已经分析的结果,还可通过addmrpt.sql脚本对特定的快照进行分析。

ADDR:

Automatic Database difference Report,是对AWR的补充,基于基线理念,可通过awrddrpt.sql获取性能异常时间与正常时间段AWRy报告的对比值,快速发现性能差异,从而定位问题。

总的来说:

性能信息和负载量的捕获:ASH和AWR

性能问题分析:ADDR和ADDM

性能调整方案:ADDM

5、  aql tuning advisor/sql access advisor

可以说80%以上的性能问题都可以通过SQL来解决(也有人说80%的性能问题是由程序自身架构所决定……囧)

查看执行计划(执行计划是一系列优化器用来完成SQL操作的步骤和操作):

EXPLAIN PLAN

v$sql_plan

SQL Trace

SQL*Plus AUTOTRACE

Oracle 10g调优流程(End-to-End Workflow):

Workload -> AWR -> ADDM -> SQL Tuning Candidates -> Invoke Advisor -> SQl Tuning Advisor -> Generate Recommendations -> Evaluate Recommendations -> Implement -> Workload

6、  hints

常用的hints:

     FIRST_ROWS, ALL_ROWS ,RULE

     FULL(tab)

     INDEX( tab index )

     NO_INDEX ( tab index )

     USE_NL(tab)

     USE_MERGE(tab..)

     USE_HASH(tab1 tab2)

     PARALLEL ( table, [, ] )

     两个字忠告:慎用。

7、DBA对全局的掌握,做到对数据库、存储、网络、系统、软件、业务流程都了然于胸。

 

结尾:

1、  结合实际,深入调查。

2、  工具要精通,思路要清晰。

3、  要适可而止。

4、  自己做出决定。

 

 

以上信息大部分来自李轶楠老师在2009年数据库大会中的ppt

来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/26425571/viewspace-722487/,如需转载,请注明出处,否则将追究法律责任。

上一篇: 没有了~
请登录后发表评论 登录
全部评论

注册时间:2012-04-30

  • 博文量
    14
  • 访问量
    24334