oracle 事务流程
update 语句事例
1.从数据字典高速缓存(data dictionary cache)检查用户权限,如果不在数据字典高速缓存,从磁盘读取到数据字典高速缓存
2.如有权限,检查该语句是否存在于库高速缓存(library cache),如没有硬解析该sql并执行,并在pga创建私有sql区
3.检查该语句所需的数据是否存在于数据缓冲区高速缓存(database buffur cache),如不在,从磁盘读取所需的表数据
4.将重做信息写日志缓冲区(redo log buffer)
5.在撤销表空间生成更改前记录(提供一致性读)
6.修改数据。
7.将重做日志缓冲区写入重做日志(以防实例崩溃,数据丢失)
8.此时数据dbwr进程并不一定已经将数据更改写入磁盘