direct path read

87 篇文章 34 订阅 ¥39.90 ¥99.00
direct path read是Oracle数据库的一种I/O操作,当session直接从磁盘读取数据到PGA而非通过SGA的buffer cache时会发生。该事件与读请求的数量不同,可能由于磁盘排序、哈希连接、SQL并行执行或大表全表扫描引起。高等待时间可能影响性能,可以通过分析V$SESSION_WAIT、V$ACTIVE_SESSION_HISTORY等视图来定位问题。
摘要由CSDN通过智能技术生成
当一个session 是从磁盘直接读取buffer 到PGA(相对从buffer cache在SGA中),

它在这个事件上等待。如果 I/O 子系统不能支持异步I/O,

然后每个等待对应的物理读请求。

如果 I/O 子系统支持异步I/O,那么处理是可以重叠执行读请求和处理blocks 已经存在在PGA里。


当process 尝试访问一个block 在PGA中,没有从磁盘读取, 它然后执行一个等待请求和更新这个事件的统计信息。

因此,等待的数量是和读请求的数量不一样的。

Check the following V$SESSION_WAIT parameter columns:

    P1 - File_id for the read call     读取的文件id

    P2 - Start block_id for the read call  读取的启示块

    P3 - Number of blocks in the read call  读取的块数


产生的原因:


direct path read较高的可能原因有:

  1. 大量的磁盘排序操作,order by, group by, union, distinct, rollup, 无法在PGA中完成排序,需要利用temp表空间进行排序。 当从临时表空间中读取排序结果时,会产生direct path read.

  2. 大量的Hash Join操作,利用temp表空间保存hash区。

  3. SQL语句的并行处理
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

scan724

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值