Oracle-AWK生成和分析

背景:发现服务器很卡,执行top发现负载很高,执行iotop发现oracle消耗IO较多,则生成AWK分析一下性能问题。

参考链接:
Oracle AWR报告的生成
AWR报告的分析-1

如何得到AWK报告应该很简单,难在如何分析,而每个系统遇到的问题又不一样。

说下我发现的问题吧:
根据搜索的资料说重点关注 Top 5 Timed Foreground Events

Oracle-AWK生成和分析_第1张图片
Top 5 Timed Foreground Events

搜索这些IO事件得到如下:

以下事件是可能由IO问题引起的等待事件,在IO负载系统中,我们要特别关注这些事件:
  
?与数据文件相关的IO事件
'db file sequential read'                     
'db file scattered read'                      
'db file parallel read'
'direct path read'                            
'direct path write'                           
'direct path read (lob)'
'direct path write (lob)'
  
?与控制文件相关的IO事件
'control file parallel write'
'control file sequential read'
'control file single write'
  
?与Redo日志相关的IO事件
'log file parallel write'                     
'log file sync'                               
'log file sequential read'
'log file single write'
'switch logfile command'
'log file switch completion'
'log file switch (clearing log file)'
'log file switch (checkpoint incomplete)'
'log switch/archive'
'log file switch (archiving needed)'
  
?与Buffer Cache相关的IO事件
'db file parallel write' 
'db file single write'
'write complete waits'
'free buffer waits'

参考: Oracle中的IO问题及其解决思路


重点关注IO问题的话,注意到了这个:

Oracle-AWK生成和分析_第2张图片
按用户I/O等待时间排序的sql.png
Oracle-AWK生成和分析_第3张图片
按时间排序的sql

然后找到对应的sql:

(1)call dbms_space.auto_space_advisor_job_proc( )
(2)calldbms_stats.gather_database_stats_job_proc ( )
(3)insert into wri$_adv_objspace_trend_dataselect timepoint, space_usage, space_alloc, quality fromtable(dbms_space.object_growth_trend(:1, :2, :3, :4, NULL, NULL, NULL, 'FALSE',:5, 'FALSE'))

百度了一下意思:
1.自动优化器统计收集:为所有方案对象收集陈旧的或缺少的统计数据,所收集的统计信息将被用来提高SQL的执行的性能,任务名是“autooptimizer stats collection”
2. 自动分段顾问:标识数据库中的段是否有可以回收的空间,并以此信息统计为基础做出怎样整理段的碎片以节约空间。也可以手动的执行此job来获取最新的建议信息,或者获取自动段advisor 不检测的但又可以回收的段的信息,任务名是“auto space advisor”
3 .自动SQL调整顾问:自动标识并尝试调整高负载的SQL,任务名是“sqltuning advisor”

原因是:
在Oracle 11g中有如下3个自动维护任务:

SQL> select client_name,status fromdba_autotask_client;
 
CLIENT_NAME                         STATUS
------------------------------------------------------------------------
auto optimizer stats collection               ENABLED
auto space advisor                        ENABLED
sql tuning advisor                        ENABLED

我把他们关闭了,虽然还不确定会带来多大的影响。
理由:在7X24小时的系统中这种自动运行的任务很有可能对系统性能带来冲击。
百度的也都建议关掉,那就关掉吧。

关闭指令:

begin 
DBMS_AUTO_TASK_ADMIN.DISABLE(client_name => 'auto optimizer stats collection', 
operation => NULL, 
window_name => NULL); 
end; 
/ 

<完>

你可能感兴趣的:(Oracle-AWK生成和分析)