其他分享
首页 > 其他分享> > AWR实战分析之----direct path read temp

AWR实战分析之----direct path read temp

作者:互联网

1.direct path read temp


select TOTAL_BLOCKS,USED_BLOCKS from v$sort_segment;


看看是不是在不段增加
select * from v$sysstat where NAME LIKE '%workarea executions%';


看看是不是在不段增加
select operation_id,operation_type,actual_mem_used,tempseg_size,tablespace
from v$session s,v$sql_workarea_active w
where s.sid=w.sid
and S.SID=?

 

 

2.

http://blog.csdn.net/zq9017197/article/details/7940984

为了排序工作在临时区域读写时,等待direct path read temp、direct path write temp事件。这个等待事件收从oracle 10g起被分类的,oracle 9i为止是通过direct path read、direct path write等待观察的。排序段上的 direct path I/O是在需要排序的数据比排序所分配的PGA内存区大时发生的。因此在排序工作时若大量发生direct path read temp、direct path write temp等待,就可以通过追加分配内存区域而避免等待。

 

  1. SQL> select event#,name,parameter1,parameter2,parameter3 from v$event_name where name = 'direct path read temp';  
  2.   
  3.     EVENT# NAME                           PARAMETER1      PARAMETER2      PARAMETER3  
  4. ---------- ------------------------------ --------------- --------------- ---------------  
  5.        195 direct path read temp          file number     first dba       block cnt  
  6.   
  7. SQL> select event#,name,parameter1,parameter2,parameter3 from v$event_name where name = 'direct path write temp';  
  8.   
  9.     EVENT# NAME                           PARAMETER1      PARAMETER2      PARAMETER3  
  10. ---------- ------------------------------ --------------- --------------- ---------------  
  11.        197 direct path write temp         file number     first dba       block cnt  
1、应用程序层
检查需要排序的sql语句是否已经最优化。不必要的排序操作会导致CPU浪费、PGA区域浪费、磁盘I/O浪费。从UNION和UNION ALL的性能差异上可以得知,只靠减少不必要的排序操作,也能解决许多问题。
2、oracle内存层
在进程上分配的工作区大小内一次性实现的排序称为One pass sort。与此相反的情况称为Multi pass sort。发生Multi pass sort时,排序工作过程中将排序结果读写到排序段(sort segment)区域,因此发生direct path read temp、direct path write temp等待。如果该等待大量发生,就可以适当提高pga_aggregate_target值,以此消除问题。

 

oracle在调优指南上推荐如下设定pga_aggregate_target值。
OLTP:pga_aggregate_target=(total_mem * 80%) * 20%
OLAP:pga_aggregate_target=(total_mem * 80%) * 50%
上述的意思是,假设OS本身使用20%左右的内存,OLTP系统上使用剩余内存的20%左右,OLAP系统因为排序工作较多,所以使用剩余内存的50%左右。

 

标签:name,temp,read,AWR,direct,path,排序
来源: https://www.cnblogs.com/ataoxz/p/15155153.html