WEB开发网
开发学院数据库Oracle 小议Oracle 11g的自治事务(三) 阅读

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

 2008-08-09 12:42:42 来源:WEB开发网   
核心提示:上一篇文章提到了,自治事务更像是在单独的会话中执行,小议Oracle 11g的自治事务(三),它的事务状态不会影响当前的事务,它也不会看到当前事务没有提交的修改,检查当前系统中会话数量:SQL>CONN/ASSYSDBA已连接,SQL>SETSQLP'SQL2>'SQL2>SEL

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

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

SQL>TRUNCATETABLET_AUTO_TRANS;

表被截断。

SQL>CREATEORREPLACEPROCEDUREP_AUTOAS
  2PRAGMAAUTONOMOUS_TRANSACTION;
  3BEGIN
  4INSERTINTOT_AUTO_TRANSVALUES(2,'TEST');
  5DBMS_LOCK.SLEEP(10);
  6COMMIT;
  7END;
  8/

过程已创建。

SQL>SELECTSIDFROMV$MYSTATWHEREROWNUM=1;
  SID
  ----------
  143

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

SQL>CONN/ASSYSDBA已连接。
  SQL>SETSQLP'SQL2>'
  SQL2>SELECTSID,USERNAME,STATUSFROMV$SESSION;
  SIDUSERNAMESTATUS
  ------------------------------------------------
  137ACTIVE
  143YANGTKINACTIVE
  145ACTIVE
  147ACTIVE
  149ACTIVE
  154SYSACTIVE
  156ACTIVE
  157ACTIVE
  160ACTIVE
  161ACTIVE
  162ACTIVE
  163ACTIVE
  164ACTIVE
  165ACTIVE
  166ACTIVE
  167ACTIVE
  168ACTIVE
  169ACTIVE
  170ACTIVE

已选择19行。

下面执行P_AUTO过程,这个过程会等待10秒的时间:

SQL>EXECP_AUTO

1 2  下一页

Tags:小议 Oracle 自治

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接