暂无图片
暂无图片
1
暂无图片
暂无图片
暂无图片
10大等待事件.docx
1105
20页
218次
2023-12-04
免费下载
1. DB File Sequential Read
1.1.
发生场景:
当一个进程需要从磁盘中读取数据块到数据库的缓冲区时,就会产生“
DB File Sequential
Read”
最常见的情况有执行索引的访问(除
IFFS
外的方式),回滚操作,以
ROWID
的方式访
问表中的数据,重建控制文件,对文件头做
DUMP
等。这里的
sequential
也并非指的是
Oracle
按顺序的方式来访问数据,和
db file scattered read
一样,它指的是读取的数据块在内
存中是以连续的方式存放的。
这个等待事件有三个参数:
File#
: 要读取的数据块锁在数据文件的文件号。
Block#
: 要读取的起始数据块号。
Blocks
:要读取的数据块数目(这里应该等于
1
)。
1.2.
工作原理:
此事件表示读取数据块的过程是顺序的,即一次读取一个块
通常,这涉及到快速的单块
I/O
操作,因为索引结构设计为提供快速的数据访问路径。
1.3.
可能原因:
(1)
磁盘
I/O
性能: 如果磁盘
I/O
速度慢,这个等待事件的时间会增加。
(2)
索引设计: 索引可能不是最优的,或者没有被查询有效利用。
(3)
数据分布: 数据可能在磁盘上分布不均匀,导致访问某些数据时
I/O
需求增加。
(4)
缓存命中率低: 如果所需的数据块不在数据库缓冲区中,就需要从磁盘读取,增加了
I/O
操作。
1.4.
优化策略:
(1)
检查索引: 确保查询使用了最合适的索引。
(2)
重新构建或优化索引: 有时重新构建索引或更改索引结构可以提高性能。
(3) SQL
语句优化: 改进查询逻辑,以减少依赖于索引查找的操作。
(4)
硬件升级: 如果
I/O
是瓶颈,考虑使用更快的磁盘或增加
I/O
子系统的能力。
(5)
数据分区: 对于大型表,使用分区可以改善数据的物理组织,减少单个索引查找的时
间。
(6)
缓存调整: 调整数据库的缓存设置,以增加缓冲区命中率。
2. DB File Scattered Read
2.1.
发生场景:
当一个查询操作需要从磁盘上读取多个数据块到
SGA
(系统全局区)的缓冲区时发生
与“
DB File Sequential Read”
不同的是,“
DB File Scattered Read”
通常涉及一次性读取多个
块并将它们“分散”到缓冲区的不同部分。
最常见的两种情况是全表扫描(
FTS
Full Table Scan
)和索引快速扫描
IFFS
index
fast full scan
)。在
Full Table Scan
Fast Full Scan
等访问方式下使用。
2.2.
工作原理:
这个过程用于处理大量数据,如全表扫描或批量数据操作。
“分散”读取意味着从磁盘读取的数据块被放置到
SGA
的不同位置,以便于并行处理和优
化内存利用。
这个等待事件有三个参数:
File#
: 要读取的数据块所在数据文件的文件号。
of 20
免费下载
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文档的来源(墨天轮),文档链接,文档作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

文档被以下合辑收录

评论

关注
最新上传
暂无内容,敬请期待...
下载排行榜
Top250 周榜 月榜