Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Oracle Новый топик    Ответить
 как узнать какая сессия заблокировала запись?  [new]
inspire
Member

Откуда:
Сообщений: 22
В, принципе, весь вопрос в теме.
11 июн 08, 06:47    [5790782]     Ответить | Цитировать Сообщить модератору
 Re: как узнать какая сессия заблокировала запись?  [new]
Dimka9
Member

Откуда: Владивосток
Сообщений: 1851
В принципе, ответ есть в форуме. Набери в поиске: сессия заблокировал - тупо. А если подойти творчески к поиску можно найти еще много интересного.
11 июн 08, 07:00    [5790789]     Ответить | Цитировать Сообщить модератору
 Re: как узнать какая сессия заблокировала запись?  [new]
Marik73
Guest
--все заблокированные объекты
select o.object_name, o.object_type, l.oracle_username, l.os_user_name, l.locked_mode
from dba_objects o,
v$locked_object l
where o.object_id = l.object_id
order by locked_mode
11 июн 08, 07:12    [5790797]     Ответить | Цитировать Сообщить модератору
 Re: как узнать какая сессия заблокировала запись?  [new]
Вячеслав Любомудров
Member

Откуда: Владивосток
Сообщений: 18486
Только мало поможет в поиске кто заблокировал конкретную запись (строку)
11 июн 08, 07:23    [5790803]     Ответить | Цитировать Сообщить модератору
 Re: как узнать какая сессия заблокировала запись?  [new]
Dimka9
Member

Откуда: Владивосток
Сообщений: 1851
Вячеслав Любомудров
Только мало поможет...

экий ты въедливый :)
...не даешь поотвечать человеку. он же в коментарии написал, что дает любой ответ на любой вопрос. )
11 июн 08, 07:52    [5790827]     Ответить | Цитировать Сообщить модератору
 Re: как узнать какая сессия заблокировала запись?  [new]
stax..
Guest
не нарвавшись на запісь(заблокировав) НИКАК узнать
зы
метод через дамп блоков памяти не расматриваем
......
stax
11 июн 08, 10:13    [5791329]     Ответить | Цитировать Сообщить модератору
 Re: как узнать какая сессия заблокировала запись?  [new]
Деев И.
Member

Откуда: отсюда
Сообщений: 783
А если уже нарвались на работу чьей-то сессии, которая держит наш DML, поможет вот это (в зависимости от версии, можно закомментировать ту или иную помеченную версиями часть):

-----------------------------------------------------------------------------------------
-- определение того, кто мешает заданной сессии, какой объект заблокирован и какая строка
-----------------------------------------------------------------------------------------
select s.sid locked_session,
(select a.sid
  from v$lock a, v$lock b
where a.BLOCK = 1 
  and b.REQUEST > 0 
  and a.ID1 = b.ID1
  and a.ID2 = b.ID2
  and b.sid = &problem_sess_sid) as blocking_session /* 9i */
  -- s.blocking_session /* если 10g, предыдущий подзапрос надо убрать,а это раскомментировать */ 
, uo.object_name locked_object
, dbms_rowid.rowid_create(1,row_wait_obj#,row_wait_file# ,row_wait_block#,row_wait_row#) locked_obj_rowid
, (case command when 2 then 'INSERT' when 3 then 'SELECT' when 6 then 'UPDATE' when 7 then 'DELETE' when 26 then 'LOCK' 
 else to_char(command)||' - см. описание v$session, таблица 7.5 в 10g Database Reference' end) command
  from v$session s
     , user_objects uo
 where uo.object_id = s.row_wait_obj#
   and s.SID = &problem_sess_sid; /* SID заблокированной сессии */ 
11 июн 08, 11:07    [5791774]     Ответить | Цитировать Сообщить модератору
 Re: как узнать какая сессия заблокировала запись?  [new]
semenar
Member

Откуда: Днепропетровск
Сообщений: 3308
Блог
stax..
не нарвавшись на запісь(заблокировав) НИКАК узнать
зы
метод через дамп блоков памяти не расматриваем
......
stax

Триггеры уровня
ddl on database
не рассматириваем?
11 июн 08, 11:14    [5791839]     Ответить | Цитировать Сообщить модератору
 Re: как узнать какая сессия заблокировала запись?  [new]
Sergey M
Member

Откуда: г. Барнаул
Сообщений: 5462
stax..
не нарвавшись на запісь(заблокировав) НИКАК узнать
зы
метод через дамп блоков памяти не расматриваем
......
stax

это что за метод такой
11 июн 08, 11:22    [5791914]     Ответить | Цитировать Сообщить модератору
 Re: как узнать какая сессия заблокировала запись?  [new]
stax..
Guest
semenar
stax..
не нарвавшись на запісь(заблокировав) НИКАК узнать
зы
метод через дамп блоков памяти не расматриваем
......
stax

Триггеры уровня
ddl on database
не рассматириваем?

и что они дадут?
.....
stax
11 июн 08, 12:21    [5792475]     Ответить | Цитировать Сообщить модератору
 Re: как узнать какая сессия заблокировала запись?  [new]
semenar
Member

Откуда: Днепропетровск
Сообщений: 3308
Блог
stax..
semenar
stax..
не нарвавшись на запісь(заблокировав) НИКАК узнать
зы
метод через дамп блоков памяти не расматриваем
......
stax

Триггеры уровня
ddl on database
не рассматириваем?

и что они дадут?
.....
stax

Ничего, невнимателен был при чтении subj.
11 июн 08, 12:35    [5792598]     Ответить | Цитировать Сообщить модератору
 Re: как узнать какая сессия заблокировала запись?  [new]
suPPLer
Member

Откуда: Харків, Україна
Сообщений: 7794
Блог
Sergey M
это что за метод такой


В блоках памяти смотрим transaction entries транзакций, которые заблокировали строки в этих блоках.
11 июн 08, 14:50    [5793784]     Ответить | Цитировать Сообщить модератору
Все форумы / Oracle Ответить