Oracle: Как узнать, существует ли ожидание транзакции?

Самый легкий способ сделать это должно открыть базу данных непосредственно и использовать эти .dump команда, вместо того, чтобы присоединить его после вызова SQLite  3 инструмента оболочки.

Так... (принимают, Ваше приглашение командной строки ОС является $) вместо $sqlite3:

sqlite3> ATTACH database.sqlite as "attached"

Из Вашей командной строки ОС, откройте базу данных непосредственно:

$sqlite3 database.sqlite
sqlite3> .dump
31
задан Erich Kitzmueller 19 August 2009 в 12:45
поделиться

4 ответа

вы можете проверить, есть ли в вашем сеансе строка в V $ TRANSACTION (очевидно, что для этого требуется привилегия чтения):

SQL> SELECT COUNT(*)
       FROM v$transaction t, v$session s, v$mystat m
      WHERE t.ses_addr = s.saddr
        AND s.sid = m.sid
        AND ROWNUM = 1;

  COUNT(*)
----------
         0

SQL> insert into a values (1);

1 row inserted

SQL> SELECT COUNT(*)
       FROM v$transaction t, v$session s, v$mystat m
      WHERE t.ses_addr = s.saddr
        AND s.sid = m.sid
        AND ROWNUM = 1;

  COUNT(*)
----------
         1

SQL> commit;

Commit complete

SQL> SELECT COUNT(*)
       FROM v$transaction t, v$session s, v$mystat m
      WHERE t.ses_addr = s.saddr
        AND s.sid = m.sid
        AND ROWNUM = 1;

  COUNT(*)
----------
         0
40
ответ дан 27 November 2019 в 21:38
поделиться
SELECT * FROM V$TRANSACTION
WHERE STATUS='ACTIVE';

См .: http://forums.oracle.com/forums/thread.jspa?threadID=691061

8
ответ дан 27 November 2019 в 21:38
поделиться

Обычно я использую этот запрос,

select s.sid
      ,s.serial#
      ,s.username
      ,s.machine
      ,s.status
      ,s.lockwait
      ,t.used_ublk
      ,t.used_urec
      ,t.start_time
from v$transaction t
inner join v$session s on t.addr = s.taddr;
32
ответ дан 27 November 2019 в 21:38
поделиться
Другие вопросы по тегам:

Похожие вопросы: