2020-02-20
Oracle 一次写操作会访问几次内存和磁盘。
5MOracle 数据库在写入一条数据时,会有几次对内存和磁盘的访问。
在内存中访问的是哪个组件。
最好能描述一下数据库的写入过程。
这个问题一直没想明白,望大家能予以解答,感谢!
收藏
分享
3条回答
默认
最新
回答交流
提交
问题信息
请登录之后查看
邀请回答
暂无人订阅该标签,敬请期待~~
墨值悬赏
5MOracle 数据库在写入一条数据时,会有几次对内存和磁盘的访问。
在内存中访问的是哪个组件。
最好能描述一下数据库的写入过程。
这个问题一直没想明白,望大家能予以解答,感谢!
1、执行dml操作,事务开始;
2、在buffer cache中找到需要的数据块,如果没有找到,则从数据文件中载入buffer cache中;
3、事务修改buffer cache的数据块,该数据被标识为“脏数据”,并被写入log buffer中;
4、事务提交,LGWR进程将log buffer中的“脏数据”写入redo log file中;
5、当发生checkpoint,CKPT进程更新所有数据文件的文件头中的信息,DBWn进程则负责将Buffer Cache中的脏数据写入到数据文件中。
评论
有用 0那么访问内存的和磁盘的次数呢?
比如在执行一条 insert 语句时,Oracle应该会先访问一次数据库吧?我记得好像是通过 Hash 的方式来判断内存中是否有这条SQL,如果有,直接执行这条语句,如果没有,然后解析这条语句。
那么这应该至少访问了两次内存了吧。
评论
有用 0
墨值悬赏