[ 登录 ][ 注册 ] 天极传媒: 比特网 | 天极网 | IT专家网 | IT商网 | 52PK游戏网 | 手机天极 | IT分众 |
您现在的位置: IT专家网 > 数据库子站 > 数据库技巧

小议Oracle 11g的自治事务(三)

作者: 杨廷琨,  出处:blog, 责任编辑: 王晓晨, 
2008-08-06 08:10
  本文通过几个例子来验证了自治事务是否和推测的一样,是由另一个会话执行的操作。

 小议Oracle 11g的自治事务(一  小议Oracle 11g的自治事务(四)

  小议Oracle 11g的自治事务(二)     小议Oracle 11g的自治事务(五)

小议Oracle 11g的自治事务(三)    小议Oracle 11g的自治事务(六)

      上一篇文章提到了,自治事务更像是在单独的会话中执行,它的事务状态不会影响当前的事务,它也不会看到当前事务没有提交的修改。

  那么自治事务是否和推测的一样,是由另一个会话执行的操作呢,下面通过几个例子来验证这一点:  

SQL> TRUNCATE TABLE T_AUTO_TRANS;

  表被截断。

SQL> CREATE OR REPLACE PROCEDURE P_AUTO AS
  2 PRAGMA AUTONOMOUS_TRANSACTION;
  3 BEGIN
  4 INSERT INTO T_AUTO_TRANS VALUES (2, 'TEST');
  5 DBMS_LOCK.SLEEP(10);
  6 COMMIT;
  7 END;
  8 /

  过程已创建。

SQL> SELECT SID FROM V$MYSTAT WHERE ROWNUM = 1;
  SID
  ----------
  143

  在另外一个会话登陆,检查当前系统中会话数量: 

SQL> CONN / AS SYSDBA已连接。
  SQL> SET SQLP 'SQL2> '
  SQL2> SELECT SID, USERNAME, STATUS FROM V$SESSION;
  SID USERNAME STATUS
  ---------- ------------------------------ --------
  137 ACTIVE
  143 YANGTK INACTIVE
  145 ACTIVE
  147 ACTIVE
  149 ACTIVE
  154 SYS ACTIVE
  156 ACTIVE
  157 ACTIVE
  160 ACTIVE
  161 ACTIVE
  162 ACTIVE
  163 ACTIVE
  164 ACTIVE
  165 ACTIVE
  166 ACTIVE
  167 ACTIVE
  168 ACTIVE
  169 ACTIVE
  170 ACTIVE

  已选择19行。

共3页。 1 2 3 :

网友评论

笔名 
请您注意:遵守国家有关法律、法规,尊重网上道德,承担一切因您的行为而直接或间接引起的法律责任。    IT专家网友拥有管理笔名和留言的一切权利。

邮件订阅