暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

7.1.7 直接获取(当前模式)数据块(db block gets direct)

原创 由迪 2020-12-24
819

进行某些操作时,如直接载入(Direct Load),需要被修改的数据块绕过缓存被直接以当前模式读入。这种方式下读取的数据块次数被统计为直接获取(当前模式)数据块次数。它是(当前模 式)数据块获取次数的子集。

示例:
要完成该示例,需要建立下表:
image.png

然后执行脚本:
image.png
image.png
7.1.8 由缓存获取(当前模式)数据块(db block gets from cache)
通常情况下,当前模式下读取的数据块是从缓存中获取的。这种方式下读取的数据块次数被统 计为由缓存获取(当前模式)数据块次数。它是(当前模式)数据块获取次数的子集。

示例:
见"db block gets"示例

7.1.9 数据块修改(db block changes)
这一数据统计了所有数据块(包括回滚数据块)被修改的次数。这些数据变化都会产生相应的 重做(Redo)日志记录。

示例:
见"db block gets"示例

7.1.10 物理读(physical reads)
该统计数据表示从物理磁盘读取到的数据块数。它包含了直接从磁盘读取的数据块数、从磁盘 读入缓存中数据块数以及从磁盘读入进程私有内存的数据块数。

示例:
见"consistent gets direct"示例

7.1.11 物理读入缓存(physical reads cache)
从磁盘读入缓存数据块数。

提示:从 9i 开始,为了充分利用 IO 带宽、提高物理读的效率,Oracle 引入了数据块预提取
(Prefetch)技术:即在执行访问表的操作时,预先将表的数据块提取存储在缓存当中,当收到了

对这些数据块的读取请求时,就不需要从磁盘读取而是从缓存中直接读取。物理读入缓存统计的数 值包含了预提取到缓存中的数据块数(physical reads cache prefetch)。

示例:
image.png
image.png
注意,该示例中,我们预先清空了 buffer cache。

7.1.12 物理预提取读入缓存(physical reads cache prefetch)
在当前读操作,读入多个数据块进入缓存,这些数据块当中,不属于当前访问的物理地址所指 向的那些数据块则属于预读取的数据块。

示例:
见"physical reads cache"示例

7.1.13 物理直接读(physical reads direct)
绕过缓存从磁盘直接读入的数据块数。其中,从 LOB 类型段和临时表空间直接读取的数据块数还分别被统计到了"physical reads direct (lob)"和"physical reads direct temporary tablespace"统计数据当中。

示例:
见"consistent gets direct"示例
7.1.14 物理写数(physical writes)
被写入磁盘的数据块数,包含了绕过缓存被直接写入磁盘的数据块数(physical writes direct) 和从缓存中写入磁盘的数据块数(“physical writes from cache”)。

示例:
见"db block gets direct"示例
7.1.15 从缓存物理写(physical writes from cache)
从缓存中写入磁盘的数据块数。由于在 Oracle 的体系架构中,数据块写入物理磁盘不是由用户进程完成的,而是由后台进程(DBWn)完成的,因此,通常我们不会在用户会话中观察到这一数值。
7.1.16 物理直接写(physical writes direct)
绕过缓存被直接写入磁盘的数据块数。其中,从 LOB 类型段和临时表空间直接读取的数据块数还分别被统计到了"physical writes direct (lob)"和"physical writes direct temporary tablespace"统计数据当中。

示例:
见"db block gets direct"示例
7.1.17 内存排序操作(sorts (memory))
该数据统计的是完全在内存中完成的排序操作数。 示例:
image.png
image.png
7.1.18 磁盘排序操作(sorts (disk))
该数据统计的是在排序过程发生过写入磁盘的排序操作数。 示例:

image.png
image.png
image.png
注意,为了造成排序过程读写临时表空间,我们这里修改了会话参数_smm_max_size 的值。
7.1.19 排序数据行(sorts (rows))
该数据统计的是被排序的数据行数。

示例:
见上述 2 例

7.1.20 递归调用(recursive calls)
该数据统计了系统和用户级别的递归调用次数。当进行某些操作时,Oracle 需要调用一些内部函数或语句来查询额外信息或者完成相应的维护操作。这些递归调用,有一些是系统必须产生的, 例如,在并行查询时,Oracle 需要一些额外信息来完成数据的分发工作;而有一些则可能是用户造成,例如,在删除被的外键所指向的表的数据时,Oracle 需要查询外键所在表的数据以保证数据的完整性。

示例:
见"consistent gets direct"示例

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论