gpt4 book ai didi

Oracle 等待事件 : what do you interpret db file scattered/sequential read?

转载 作者:行者123 更新时间:2023-12-04 15:15:02 26 4
gpt4 key购买 nike

我们举两个例子:
全表扫描导致此结果:

                               TOTAL   TIME
EVENT WAITS WAITED
------------------------------ ----- ------
db file scattered read 460 13

这是通过非选择性索引范围扫描访问的结果:
                               TOTAL   TIME
EVENT WAITS WAITED
------------------------------ ----- ------
db file scattered read 15 3
db file sequential read 6209 140

我希望在从非选择性索引中获取许多 rowid 后进行分散读取。只需一次顺序读取即可读取碎片整理后的 I/O 系统上的所有表。

你能解释一下如何读取这些数据吗?

最佳答案

这两个等待事件的命名相当困惑。它们都表示 I/O 瓶颈:db file scattered read通常来自多块读取,这意味着全表扫描,而 db file sequential read通常来自单块读取,这表示索引读取。

关于 Oracle 工程师给这些事件起如此明显具有误导性的名称的原因有多种不同的理论。我衷心建议您阅读 Eric Emrick 关于该主题的文章,Why Have Scattered Thoughts About Oracle Reads?

至于解释数据,索引读取至少是两个逻辑读取:索引的查找,然后是表指示的表行的查找。诸如迁移行之类的事情可能会增加读取次数。因此,通过索引读取大量行是一项代价高昂的操作。然而,全表扫描只能使用多块读取来捕获行:即为单个逻辑读取拉入多行。这就是为什么全表扫描通常可以更有效地检索即使是表总行中相对较小百分比的行。

关于Oracle 等待事件 : what do you interpret db file scattered/sequential read?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6890052/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com