MurCode
Форумы
Поиск
О проекте
Oracle
Новое сообщение
Как найти кто заблокировал запись в таблице?
WWWeb
Дата: 18.03.2011 17:07:08
Здравствуйте.
Как получить номер сессии того кто заблокировал в таблице запись?
Спасибо.
tru55
Дата: 18.03.2011 17:08:41
v$lock
Shtock
Дата: 18.03.2011 17:13:43
select sid, o.object_name
from v$lock l
inner join all_objects o on o.OBJECT_ID = l.id1
в лок
Дата: 18.03.2011 17:14:29
WWWeb
Здравствуйте.
Как получить номер сессии того кто заблокировал в таблице запись?
Спасибо.
Нужно сначала в другой сессии выполнить запрос, например select for update для той строки.
И потом уже по v$lock можно узнать, кто держит эту сессию.
WWWeb
Дата: 18.03.2011 17:16:59
Я вижу номер сессии, но как увидеть, какой объект ею заблокирован?
tru55
Дата: 18.03.2011 17:18:14
WWWeb
Я вижу номер сессии, но как увидеть, какой объект ею заблокирован?
id1 = id object
-2-
Дата: 18.03.2011 17:20:51
в лок
Нужно сначала в другой сессии выполнить запрос, например select for update для той строки.
Ведь в вопросе не указано "кто заблокировал в таблице
конкретную
запись?"
А если сессия зависла, то в более/менее современных версиях v$lock анализировать уже не надо - v$session куда информативнее.
в лок
Дата: 18.03.2011 17:22:08
tru55
WWWeb
Я вижу номер сессии, но как увидеть, какой объект ею заблокирован?
id1 = id object
Для блокировки строки??
в лок
Дата: 18.03.2011 17:24:31
-2-
в лок
Нужно сначала в другой сессии выполнить запрос, например select for update для той строки.
Ведь в вопросе не указано "кто заблокировал в таблице
конкретную
запись?"
А если сессия зависла, то в более/менее современных версиях v$lock анализировать уже не надо - v$session куда информативнее.
Если неизвестна конкретная запись, значит придётся блокировать всю таблицу.
WWWeb
Дата: 18.03.2011 17:37:13
в лок,
конкретная запись известна
Назад
1
2
3
Вперед