ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

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

2021-08-18 09:03:22  阅读:249  来源: 互联网

标签:name temp read AWR direct path 排序


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

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有