[SQL] ๋ฝ(LOCK)

๋ด„ยท2025๋…„ 7์›” 10์ผ

SQL

๋ชฉ๋ก ๋ณด๊ธฐ
98/126

๐Ÿ“Œ dba ํ•„์ˆ˜ ์Šคํฌ๋ฆฝํŠธ lock ํ™•์ธํ•˜๋Š” ์ฟผ๋ฆฌ(SQL developer์—์„œ ํ™•์ธ)

select decode(status,'INACTIVE',username || ' ' || sid || ',' || serial#,'lock') as Holder, 
       decode(status,'ACTIVE',  username || ' ' || sid || ',' || serial#,'lock') as waiter, sid, serial#, status
    from( select level as le, NVL(s.username,'(oracle)') AS username,
    s.osuser,    
    s.sid,
    s.serial#,
    s.lockwait,
    s.module,
    s.machine,
    s.status,
    s.program,
    to_char(s.logon_TIME, 'DD-MON-YYYY HH24:MI:SS') as logon_time
       from v$session s
      where level>1
                or EXISTS( select 1 
    from v$session
    where blocking_session = s.sid)
      CONNECT by PRIOR s.sid = s.blocking_session
  START WITH s.blocking_session is null );
  
  
-- ์œ„์˜ ์ฝ”๋“œ๋กœ holder ๋ฒˆํ˜ธ๋ฅผ ์ฐพ์•„์„œ kill ์‹œํ‚ด
alter system kill session '253,9738' immediate;

๋ฌธ์ œ1. c##scott ์œผ๋กœ ์„ธ์…˜์„ 2๊ฐœ๋ฅผ ๊ฐ๊ฐ ์—ด๊ณ  ํ•˜๋‚˜์˜ ์ฐฝ์—์„œ KING ์˜ ์›”๊ธ‰์„ 6000์œผ๋กœ ๊ฐฑ์‹ ํ•˜๊ณ  ๋‹ค๋ฅธ ์ฐฝ์—์„œ KING ์˜ ๋ถ€์„œ๋ฒˆํ˜ธ๋ฅผ 30๋ฒˆ์œผ๋กœ ๊ฐฑ์‹ ํ•ด๋ณด์‹œ์˜ค

๐Ÿ’ก ์˜ค๋ผํด์˜ ๋ฝ(lock)์€ ๊ธฐ๋ณธ์ ์œผ๋กœ UPDATE ๋ฅผ ํ•˜๊ฒŒ ๋˜๋ฉด ํ–‰๋‹จ์œ„(row level)๋กœ ๊ฑธ๋ฆผ
ํ…Œ์ด๋ธ” ๋ ˆ๋ฒจ๋กœ ๋ฝ์„ ๊ฑธ์ง€ X

0๊ฐœ์˜ ๋Œ“๊ธ€