求助:磁盘排序引发的大量“direct path write temp”事件

[复制链接]
查看11 | 回复8 | 2013-2-25 14:51:24 | 显示全部楼层 |阅读模式
最近维护的一个OLAP的库一跑数据量稍大的业务就特别缓慢,查看了一些session,发现只要一使用到临时表空间,例如建索引,hash连接等操作,就产生大量的“direct path write temp”等待事件,在i/o比较空闲的磁盘重建了临时表空间,仍然没有改善,登陆主机用“iostat -xtc 5 2”查看临时表空间所在的磁盘的i/o,发现数据库对临时表空间写数据时,磁盘写速度奇慢,911.8kw/s,但其他操作如“INSERT /*+APPEND*/ INTO”,写速度可达23190.5kw/s,相差20多倍(注:这两种操作测试都是在没有其他操作干扰的情况下做的)。请教各位,这种情况会是什么问题导致,为什么数据库向临时文件写数据速度就会慢很多?
数据库版本10g,内存 pga_aggregate_target 1G,临时表空间30g(一般最多只用到2G),磁盘是RAID 5 的。

--磁盘排序时

extended device statistics

devicer/sw/s kr/s kw/s wait actvsvc_t%w%b
ssd17.8 70.4 62.4 23190.50.04.1 52.5 096
--数据直接加载时
devicer/sw/s kr/s kw/s wait actvsvc_t%w%b
ssd15.4113.8 43.2911.80.02.0 17.1 0 100

回复

使用道具 举报

千问 | 2013-2-25 14:51:24 | 显示全部楼层
不好意思,上面的两条记录贴反了,应该是这样:
--数据直接加载时

extended device statistics

devicer/sw/s kr/s kw/s wait actvsvc_t%w%b
ssd17.8 70.4 62.4 23190.50.04.1 52.5 096
--磁盘排序时
devicer/sw/s kr/s kw/s wait actvsvc_t%w%b
ssd15.4113.8 43.2911.80.02.0 17.1 0 100
回复

使用道具 举报

千问 | 2013-2-25 14:51:24 | 显示全部楼层
1) OS层次copy 文件看看IO速度是多少?
2) 把temp tablespace建立到其他device, 看看速度是多少。

回复

使用道具 举报

千问 | 2013-2-25 14:51:24 | 显示全部楼层
hkdba 发表于 2013-3-14 12:17
1) OS层次copy 文件看看IO速度是多少?
2) 把temp tablespace建立到其他device, 看看速度是多少。

1) OS层次copy 文件看看IO速度是多少?
这个速度一般超过50m/s
2) 把temp tablespace建立到其他device, 看看速度是多少。
这个已经试过,没有改善,临时表空间建到其他磁盘写数据,也一样是1m/s左右。
回复

使用道具 举报

千问 | 2013-2-25 14:51:24 | 显示全部楼层
stqiuwj 发表于 2013-3-14 10:32
不好意思,上面的两条记录贴反了,应该是这样:
--数据直接加载时

将 pga_aggregate_target大小调到2g ,看看效果
回复

使用道具 举报

千问 | 2013-2-25 14:51:24 | 显示全部楼层
lantianjidi 发表于 2013-3-14 14:44
将 pga_aggregate_target大小调到2g ,看看效果

试过调整到5g,对这个问题还是没有帮助。毕竟是OLAP的库,大部分脚本都要用到临时表空间的,不能完全在内存中处理。现在奇怪的就是临时表空间的写入速度卡1m/s,不知道瓶颈到底在哪里?
回复

使用道具 举报

千问 | 2013-2-25 14:51:24 | 显示全部楼层
还有高手能给点意见指点吗?据我的理解,直接加载和往临时表空间写数据都是从pga直接写到磁盘吧,路径有差异吗?为什么两种操作的在磁盘i/o上差异这么大。这个问题不解决,我这个库就等于废掉了,完全没办法用临时表空间。到底是什么原因会这样呢?
回复

使用道具 举报

千问 | 2013-2-25 14:51:24 | 显示全部楼层
stqiuwj 发表于 2013-3-15 10:11
还有高手能给点意见指点吗?据我的理解,直接加载和往临时表空间写数据都是从pga直接写到磁盘吧,路径有差异 ...

你取个AWR报告发上来看看。
有没有去查过是不是oracle bug?
回复

使用道具 举报

千问 | 2013-2-25 14:51:24 | 显示全部楼层
执行这个看看:
select * from v$tempstat ;
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行