Oracle ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋Œ€๋Ÿ‰์˜ DML ์ž‘์—…(INSERT, UPDATE, DELETE) ๋˜๋Š” ๋‹ค์ˆ˜์˜ ํŠธ๋žœ์žญ์…˜์ด ๋™์‹œ์— ๋ฐœ์ƒํ•˜๋ฉด, ์ข…์ข… ์•Œ ์ˆ˜ ์—†๋Š” ์„ฑ๋Šฅ ์ €ํ•˜๊ฐ€ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค. ์ด๋•Œ AWR ๋˜๋Š” ASH ๋ฆฌํฌํŠธ๋ฅผ ํ™•์ธํ•ด๋ณด๋ฉด "enq: US - contention"์ด๋ผ๋Š” Undo Segment ๊ด€๋ จ ๋Œ€๊ธฐ ์ด๋ฒคํŠธ๊ฐ€ ๋‚˜ํƒ€๋‚˜๊ณค ํ•˜์ฃ .

์ด ๊ธ€์—์„œ๋Š” ์‹ค๋ฌด์—์„œ ์ž์ฃผ ์ ‘ํ•  ์ˆ˜ ์žˆ๋Š” Oracle์˜ enq: US - contention ๋ฌธ์ œ์˜ ์›์ธ๊ณผ ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•์„ ์ด๋ชจํ‹ฐ์ฝ˜๊ณผ ํ•จ๊ป˜ ์นœ์ ˆํ•˜๊ฒŒ ์ •๋ฆฌํ•ฉ๋‹ˆ๋‹ค.



❓ enq: US - contention์ด๋ž€?

enq: US - contention์€ Oracle์˜ Enqueue Wait Event ์ค‘ ํ•˜๋‚˜๋กœ, ๋‹ค์Œ์„ ์˜๋ฏธํ•ฉ๋‹ˆ๋‹ค:

  • US → Undo Segment
  • contention → ๊ฒฝํ•ฉ (๋™์‹œ ์ ‘๊ทผ ์ถฉ๋Œ)

์ฆ‰, ์—ฌ๋Ÿฌ ์„ธ์…˜์ด ๋™์ผํ•œ Undo ๋ธ”๋ก ๋˜๋Š” ์„ธ๊ทธ๋จผํŠธ์— ๋™์‹œ์— ์ ‘๊ทผํ•˜๋ ค ํ•  ๋•Œ ๋ฐœ์ƒํ•˜๋Š” ๊ฒฝํ•ฉ์ž…๋‹ˆ๋‹ค. ํŠนํžˆ ๋‹ค์Œ ์ƒํ™ฉ์—์„œ ์ž์ฃผ ๋ฐœ์ƒํ•ฉ๋‹ˆ๋‹ค:

✅ ๋Œ€๋Ÿ‰์˜ DML ์ž‘์—…
✅ ๋ณ‘๋ ฌ ํŠธ๋žœ์žญ์…˜ ์ฒ˜๋ฆฌ
✅ Undo ์„ค์ • ๋ฏธ๋น„ ๋˜๋Š” ์šฉ๋Ÿ‰ ๋ถ€์กฑ

๐Ÿงจ ์ฃผ์š” ์›์ธ ์š”์•ฝ

์›์ธ์„ค๋ช…
๐Ÿ”„ Undo ์„ธ๊ทธ๋จผํŠธ ๋ถ€์กฑ๋™์‹œ ํŠธ๋žœ์žญ์…˜์ด ๋งŽ์„ ๋•Œ ํ• ๋‹นํ•  Undo ์„ธ๊ทธ๋จผํŠธ๊ฐ€ ๋ถ€์กฑ
๐Ÿ”ฅ Hot Undo ๋ธ”๋ก์—ฌ๋Ÿฌ ์„ธ์…˜์ด ๋™์ผ ๋ธ”๋ก์— ์ ‘๊ทผ
๐Ÿงฑ ๋ณ‘๋ ฌ DML ๊ณผ๋‹ค ์‚ฌ์šฉ๋ณ‘๋ ฌ INSERT/UPDATE๋กœ ๊ฒฝํ•ฉ ์œ ๋ฐœ
๐Ÿ•’ Undo Retention ๋ถ€์กฑUndo ๋ฐ์ดํ„ฐ๊ฐ€ ๋นจ๋ฆฌ ์‚ฌ๋ผ์ ธ ์žฌ์‚ฌ์šฉ ์ถฉ๋Œ ๋ฐœ์ƒ

๐Ÿ›  ํ•ด๊ฒฐ ๋ฐฉ๋ฒ•: enq: US - contention ํŠœ๋‹ ๊ฐ€์ด๋“œ

1️⃣ Undo Tablespace ์šฉ๋Ÿ‰ ๋Š˜๋ฆฌ๊ธฐ ๐Ÿ“ˆ

sql
๋ณต์‚ฌํŽธ์ง‘
ALTER DATABASE DATAFILE '/oracle/undotbs01.dbf' RESIZE 2G;

 Undo ์„ธ๊ทธ๋จผํŠธ ์ˆ˜๋ฅผ ํ™•๋ณดํ•ด ๊ฒฝํ•ฉ ์™„ํ™”.


2️⃣ Undo Retention ์‹œ๊ฐ„ ์ฆ๊ฐ€ ⏳

ALTER SYSTEM SET UNDO_RETENTION = 1200 SCOPE=BOTH;

Undo๋ฅผ ๋” ์˜ค๋ž˜ ์œ ์ง€ํ•ด ๋ถˆํ•„์š”ํ•œ ์žฌ์‚ฌ์šฉ ๋ฐฉ์ง€.


3️⃣ ๋ณ‘๋ ฌ DML ์ค„์ด๊ธฐ ๐Ÿ”ง

  • ๋Œ€๋Ÿ‰ DML ์ž‘์—…์€ ๋ฐฐ์น˜๋กœ ๋‚˜๋ˆ„์–ด ์ฒ˜๋ฆฌ
  • ๋ณ‘๋ ฌ ํžŒํŠธ ์กฐ์ ˆ:
/*+ NO_PARALLEL */
 
4️⃣ ๋ฌธ์ œ ์„ธ์…˜ ๋ฐ SQL ์ถ”์ ํ•˜๊ธฐ ๐Ÿ‘
SELECT * FROM v$active_session_history 
  WHERE event = 'enq: US - contention';

AWR, ASH ๋ฆฌํฌํŠธ ๋ถ„์„์œผ๋กœ ๋ณ‘๋ชฉ ์›์ธ SQL ํŒŒ์•….


๐Ÿš€ ์ถ”๊ฐ€ ํŒ: ์‹œ์Šคํ…œ ์ „๋ฐ˜์ ์ธ ํŠธ๋žœ์žญ์…˜ ๊ตฌ์กฐ ๊ฐœ์„ ์ด ์ค‘์š”


Undo ๊ด€๋ จ ๊ฒฝํ•ฉ์€ ๋‹จ์ˆœํžˆ ๋ฆฌ์†Œ์Šค๋ฅผ ๋Š˜๋ฆฌ๋Š” ๊ฒƒ๋งŒ์œผ๋กœ๋Š” ํ•ด๊ฒฐ๋˜์ง€ ์•Š์Šต๋‹ˆ๋‹ค. ํŠธ๋žœ์žญ์…˜ ์„ค๊ณ„, ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜ ๊ตฌ์กฐ, ๋ฐฐ์น˜ ์ฃผ๊ธฐ ๋“ฑ์„ ์ „๋ฐ˜์ ์œผ๋กœ ์ ๊ฒ€ํ•˜๋Š” ๊ฒƒ์ด ๊ทผ๋ณธ์ ์ธ ํ•ด๊ฒฐ์ฑ…์ž…๋‹ˆ๋‹ค.

๊ฐ€๋Šฅํ•˜๋‹ค๋ฉด Oracle ์ „๋ฌธ๊ฐ€์™€ ํ•จ๊ป˜ AWR, ADDM ๋ฆฌํฌํŠธ๋ฅผ ๊ธฐ๋ฐ˜์œผ๋กœ ๊ตฌ์กฐ์  ๋ถ„์„์„ ์ง„ํ–‰ํ•˜๋Š” ๊ฒƒ์ด ์ข‹์Šต๋‹ˆ๋‹ค. ๐Ÿ›ก️