10.3.4 direct path read and direct path read temp

87 篇文章 ¥39.90 ¥99.00
本文深入探讨了Oracle数据库中的直接路径读取(direct path read)和直接路径读取临时(direct path read temp)操作,揭示了这两种技术在大数据量处理时如何提升性能,以及它们对内存和磁盘I/O的影响。同时,文章还将讨论它们与传统块读取的区别,并给出优化建议。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

10.3.4 direct path read and direct path read temp

当一个会话是从磁盘读buffer 直接到PGA(相对于buffer cache 在SGA), 它在这个事件上

如果I/O 子系统不支持异步I/Os, 那么每个等待对应物理读请求。


如果 I/O  子系统支持异步I/O, 然后处理是可以 重叠执行度请求和处理blocks 在PGA里。

当处理尝试访问一个block 在PGA ,block 没有从磁盘读取。

它然后执行一个等待请求 和更新统计信息对于这个事件。

因此,等待的次数是和读请求的次数是不相同的


检查 v$session_wait 参数列:


p1:File_id 对于读的请求

p2: 开始block_id 对于读请求

p3: 读的块数


10.3.4.1  原因

这种情况发生在下面的情况:

1. 排序是太大的 来放入到内存, 一些排序的数据是直接写出到磁盘。


这个数据是随后被读回,使用直接读


2.并行slaves 是用于扫描数据

3.server 进程是处理buffer 快于系统可以返回的buffers, 这个表明一个过载的I/O系统


10.3.4.2 Actions:


file_id 显示如果 读是对于一个对象 在TEMP 表空间(在磁盘上排序) 或者全表扫描通过并发slaves.

这个等待是最大的等待对于大的数据仓库。 然而,如果负载不是一个设计支持系统负载的,然后检查为什么这个状态是发生的


10.3.4.2.1  磁盘排序

检验 SQL语句当前通过session 经历等待来看 什么导致了排序。


查询V$TEMPSEG_USAGE 来找到SQL语句 在进行排序。


也
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

scan724

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

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

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

打赏作者

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

抵扣说明:

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

余额充值