oracle中事务的理解

测试以hr用户登陆删除一个表执行动作如下:
sqlplus hr/hr
delete from emp;
注意,该用户没有commit
此时,又以sys用户登陆执行同样的操作如下:
sqlplus sys/sys as sysdba
delete from hr.emp;
此时会发生行死锁现象,因为sys在等待hr用户commit
我们可以通过oracle em监控到。操作如下:
在em performance中的 session:warting and working查看到该峰值
处理方法:我们可以通过 blocking session中监控到该死锁,直接kill掉hr的用户session
发现,此时hr用户的session回滚了.
但是,如果我们直接在hr session的终端直接disconn或exit,则此时系统还是默认的执行了
commit操作
综上所述:如果用户exit或disconn,系统执行的仍然是commit操作
而如果执行的是kill掉该session,则系统执行的roll back 操作。