ORACEL 中 事务执行过程

 事务执行过程
1、服务器进程拾取该事务所持有的SQL语句到共享池中,查找是否有包含该SQL语句的共享SQL区。如果有,则检查该用户是否有访问所涉及的数据的权限,如果有,则使用共享SQL区来处理该SQL语句。如果没有找到共享SQL区,则分配一个新的SQL区来分析、处理该SQL语句。如果没有权限,则直接返回并提示权限不足。
2、锁定该SQL语句所涉及的操作对象。
3、服务器进程在SGA中操作数据(如果存在SGA中),或者先从数据文件中奖数据读取到SGA中然后操作数据。
4、在适当的时候,LGWR后台进程将已经缓冲的重做日志写入到联机重做日志文件中。DBWR后台进程将数据高速缓存中的被更改过的数据块写入到数据文件中。
5、为该事务自动产生一个递增的SCN。ORACLE使用SCN来确定数据库在某个时间点的一致性状态,用来进行并发控制,和进行数据库的恢复。可以将SCN理解为数据库的时钟。SCN会被记录在控制文件、数据文件的头部、数据块的头部和重做记录中。
6、LGWR后台进程将所有剩余的、已经缓冲的重做日志和当前的SCN写入到联机重做日志文件中。
7、释放该事务中SQL语句所占有的系统资源,并解除对所涉及的操作对象的锁定。
8、如果事务是成功的,则返回成功提示的代码,否则返回一个错误提示的代码。
9、在某个恰当的时间点,DBWR后台进程将仍然保留在数据高速缓存中被更改过的数据块(也就是脏数据块块)写入到数据文件中

你可能感兴趣的:(oracle,sql,数据库,服务器)