πŸ“… 2025-05-14 락쑰회 κ°œλ… 및 Sequence 정리


πŸ”’ λ½μ‘°νšŒλž€?

  • μ •μ˜: ν˜„μž¬ ν…Œμ΄λΈ” ν˜Ήμ€ λ ˆμ½”λ“œμ— 락(Lock) 이 κ±Έλ € μžˆλŠ”μ§€λ₯Ό ν™•μΈν•˜λŠ” 쑰회 연계
  • λͺ©μ : λ‹€λ₯Έ μ‚¬μš©μžκ°€ 데이터λ₯Ό μ‘°μž‘ν•˜κ³  μžˆμ„ λ•Œ λ™μ‹œ 처리 좩돌 λ°©μ§€

πŸ› οΈ μ‚¬μš© μ˜ˆμ‹œ

  • INSERT, UPDATE, DELETE 같은 DML 연산을 μˆ˜ν–‰ν•˜κΈ° 전에 락이 κ±Έλ € μžˆλŠ”μ§€ 확인
  • 락이 κ±Έλ € μžˆλ‹€λ©΄ μ‚¬μš©μžμ—κ²Œ μ•Œλ €μ£Όκ³  연산을 λ§‰μŒ

βœ… μ‹€λ¬΄μ—μ„œλŠ”?

  • 락쑰회용 EBI OPλ₯Ό λ³„λ„λ‘œ λ§Œλ“€μ–΄μ„œ μ‚¬μš©ν•˜λŠ” 경우 많음
  • 쿼리 μ˜ˆμ‹œ:
SELECT *
FROM ν…Œμ΄λΈ”λͺ…
WHERE 쑰건
FOR UPDATE NOWAIT;

❗ MAX ν•¨μˆ˜μ˜ ν•œκ³„

  • MAX + 1 λ°©μ‹μœΌλ‘œ 일련번호λ₯Ό κ΅¬ν•˜λŠ” 경우

  • μ—¬λŸ¬ μ‚¬μš©μžκ°€ λ™μ‹œμ— μ‘°νšŒν•˜λ©΄ μ€‘λ³΅λœ λ²ˆν˜Έκ°€ λ°œμƒν•  수 있음

  • 이둜 인해 PK 쀑볡 였λ₯˜, 데이터 무결성 였λ₯˜ λ°œμƒ κ°€λŠ₯


πŸ” Oracle Sequence μ‚¬μš©ν•˜λŠ” 이유

  • μ‹œν€€μŠ€(Sequence): Oracle이 μ œκ³΅ν•˜λŠ” 일련번호 μžλ™ 생성 객체

  • μž₯점:

    • 쀑볡 μ—†λŠ” μœ μΌν•œ 숫자 생성

    • λ™μ‹œ 접근에도 좩돌 μ—†μŒ

    • νŠΈλžœμž­μ…˜ κ°„ μ•ˆμ „ν•˜κ²Œ 관리됨

μ‚¬μš© μ˜ˆμ‹œ:

SELECT μ‹œν€€μŠ€λͺ….NEXTVAL FROM DUAL;

보톡 INSERT 전에 μ‹œν€€μŠ€μ—μ„œ λ‹€μŒ 값을 λ°›μ•„μ™€μ„œ PKλ‚˜ 일련번호둜 μ‚¬μš©ν•¨


🧠 싀무 μ°Έκ³ 

  • μ „λΆμ€ν–‰μ—μ„œλŠ” μ‹œν€€μŠ€ μ‚¬μš©μ— κΆŒν•œμ΄ ν•„μš”ν•˜λ―€λ‘œ 상황에 따라 μ‚¬μš© μ—¬λΆ€ κ²°μ •

  • 데이터 좩돌 μœ„ν—˜μ΄ μžˆλŠ” κ²½μš°μ—λŠ” λ°˜λ“œμ‹œ Sequence μ‚¬μš©μ΄ ꢌμž₯됨