powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Oracle [игнор отключен] [закрыт для гостей] / кто держит строку
3 сообщений из 3, страница 1 из 1
кто держит строку
    #32167692
whois
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Здравствуйте. Есть ли способ определить кто держит конкретную строку:
SELECT * FROM table1 WHERE id=:id FOR UPDATE ?
В представлении v$locked_object показываются сессии, заблокировавшие строки таблицы, но и только. можно ли определить на уровне rowid ?
...
Рейтинг: 0 / 0
кто держит строку
    #32167718
Фотография SY
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Check MetaLink Note:132629.1

SY.
P.S. I did not test the solution since it seemed too bulky (it requires PRO*C code running as a daemon and listening to Oracle pipe + PL/SQL piece to pipe the requests), so if you do please share with the rest of us.
...
Рейтинг: 0 / 0
кто держит строку
    #32170186
vskv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Тут более применима даже 164760.1 или 74089.1
В любом случае, если сессия заблокировалась на блокировке (сорри за каламбур), то тебе поможет
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
 4 . Which row is locked? 
======================= 
 
Session  11  has a TM lock on object  4933  (Table SCOTT.DEPT), but most of the time applications update several tables and might not be very clear in the detail window what object has the lock.  
To be more certain, the following queries show the info : 
 
  select sid,ROW_WAIT_FILE#,ROW_WAIT_BLOCK#,ROW_WAIT_ROW# 
  from v$session where sid = 11 ; 
 
 SID ROW_WAIT_OBJ# ROW_WAIT_FILE# ROW_WAIT_BLOCK# ROW_WAIT_ROW# 
 ---- ------------- -------------- --------------- ------------- 
 
   11            4933               11              1022              13   
 
  select object_type,owner,object_name 
  from dba_objects 
  where object_id= 4933 ; 
 
OBJECT_TYPE        OWNER   OBJECT_NAME 
 ------------------ ------- ----------- 
 
TABLE              SCOTT   DEPT 
 
  SELECT * FROM EMP WHERE rowid =  
  DBMS_ROWID.ROWID_CREATE( 1 ,  4933 ,  11 ,  1022 ,  13 ); 
 
EMPNO ENAME    JOB    MGR   HIREDATE  SAL       COMM     DEPTNO 
 ----- -------- ------ ----- --------- --------- -------- ---------- 
 
  7934  MILLER   CLERK   7782    23 -JAN- 82   1430                 10  
 
 
The File#,block#,row# give us up to what row is currently waiting but it does not tell us if it will be waiting for more after this lock is cleared even with this same sql statement. 
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Oracle [игнор отключен] [закрыт для гостей] / кто держит строку
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]