ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • MSSQL : ํŠธ๋žœ์žญ์…˜ ๊ฒฉ๋ฆฌ์ˆ˜์ค€
    DB 2020. 3. 18. 14:51
    ๋ฐ˜์‘ํ˜•

     

    ํ˜„์žฌ ๋‹ค๋‹ˆ๊ณ  ์žˆ๋Š” ํšŒ์‚ฌ์—์„œ๋Š” ๋Œ€๋ถ€๋ถ„์˜ ๋น„์ฆˆ๋‹ˆ์Šค ๋กœ์ง์„ ํ”„๋กœ์‹œ์ €๋กœ ์ฒ˜๋ฆฌํ•œ๋‹ค.

     

    ๊ทธ๋•Œ ๊ฐ๊ฐ์˜ ํ”„๋กœ์‹œ์ €๋งˆ๋‹ค ํ•ญ์ƒ ์‚ฝ์ž…๋˜๋Š” ๋‘ ๊ฐ€์ง€์˜ ๊ตฌ๋ฌธ์ด ์žˆ๋Š”๋ฐ ๋ฐ”๋กœ

    1) SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED; 
    2) SET NOCOUNT ON;

    ์ด๋‹ค.

    ํ”„๋กœ์‹œ์ €๋งˆ๋‹ค ์“ฐ๊ธธ๋ž˜ ์‚ฌ์šฉํ•˜๊ธด ํ•˜๋Š”๋ฐ, ์™œ ์ €๋ ‡๊ฒŒ ํ•ด์•ผํ•˜๋Š”์ง€ ์•Œ์•„์•ผ ํ•˜๊ธฐ์—.. ์ •๋ฆฌํ•ด๋ณด์•˜๋‹ค.

     

    ๋ณธ๋ก ์œผ๋กœ ๋“ค์–ด๊ฐ€๊ธฐ ์ „ ๊ฐ„๋‹จํ•˜๊ฒŒ ๋งํ•˜์ž๋ฉด ,
    1)์€ ํŠธ๋žœ์žญ์…˜์˜ ACID  ์ค‘ ๊ฒฉ๋ฆฌ์„ฑ(Isolation)์— ๋Œ€ํ•œ ๋‚ด์šฉ

    2)๋Š” ํ”„๋กœ์‹œ์ € ์„ฑ๋Šฅํ–ฅ์ƒ์— ๋Œ€ํ•œ ๋‚ด์šฉ์ด๋‹ค. 

    ๊ธธ์–ด์งˆ ๊ฒƒ ๊ฐ™์•„ 1๊ณผ 2๋ฅผ ๋ถ„๋ฆฌํ•ด ๋‘๊ฐœ์˜ ๊ธ€๋กœ ์ ์„ ์˜ˆ์ •์ด๋‹ค .


    ํŠธ๋žœ์žญ์…˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€(Transaction Isolation Level) ?

    SQL Server์—์„œ ์ž ๊ธˆ(Lock)์„ ์–ด๋–ค ์‹์œผ๋กœ ์ ์šฉํ•  ๊ฒƒ์ธ๊ฐ€์— ๊ด€ํ•œ ์–˜๊ธฐ์ด๋‹ค.

    ์ฃผ๋กœ SELECT์‹œ Lock์„ ์–ด๋–ป๊ฒŒ ๊ฑธ ๊ฒƒ์ด๋ƒ์— ๋”ฐ๋ผ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์ด ๊ตฌ๋ถ„์ง€์–ด์ง„๋‹ค.

     

    ํŠธ๋žœ์žญ์…˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์˜ ํ•„์š”์„ฑ ?

    • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ACID ๊ฐ™์ด ํŠธ๋žœ์žญ์…˜์ด ์›์ž์ ์ด๋ฉด์„œ๋„ ๋…๋ฆฝ์ ์ธ ์ˆ˜ํ–‰์„ ํ•˜๋„๋ก ํ•œ๋‹ค.
    • ๊ทธ๋ž˜์„œ Locking ์ด๋ผ๋Š” ๊ฐœ๋…์ด ๋“ฑ์žฅํ•œ๋‹ค.

      (ํŠธ๋žœ์žญ์…˜์ด DB๋ฅผ ๋‹ค๋ฃจ๋Š” ๋™์•ˆ ๋‹ค๋ฅธ ํŠธ๋žœ์žญ์…˜์ด ๊ด€์—ฌํ•˜์ง€ ๋ชปํ•˜๊ฒŒ ๋ง‰๋Š” ๊ฒƒ)
    • ํ•˜์ง€๋งŒ ๋ฌด์กฐ๊ฑด์ ์ธ Locking์œผ๋กœ ๋™์‹œ์— ์ˆ˜ํ–‰๋˜๋Š” ๋งŽ์€ ํŠธ๋žœ์žญ์…˜๋“ค์„ ์ˆœ์„œ๋Œ€๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๊ตฌํ˜„๋˜๋ฉด DB์˜ ์„ฑ๋Šฅ์€ ๋–จ์–ด์ง€๊ฒŒ ๋œ๋‹ค.
    • ๋ฐ˜๋Œ€๋กœ ์‘๋‹ต์„ฑ์„ ๋†’์ด๊ธฐ ์œ„ํ•ด Locking ๋ฒ”์œ„๋ฅผ ์ค„์ธ๋‹ค๋ฉด ์ž˜๋ชป๋œ ๊ฐ’์ด ์ฒ˜๋ฆฌ ๋  ์—ฌ์ง€๊ฐ€ ์žˆ๋‹ค.
    • ๊ทธ๋ž˜์„œ ์ตœ๋Œ€ํ•œ ํšจ์œจ์ ์ธ Locking ๋ฐฉ๋ฒ•์ด ํ•„์š”ํ•˜๋‹ค.

    ํŠธ๋žœ์žญ์…˜ ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์˜ ์ข…๋ฅ˜
    1. READ COMMITTED 
    2. READ UNCOMMITTED

    3. REPEATABLE READ

    4. READ COMMITTED SNAPSHOT

    5. SNAPSHOT 

     

    1. READ COMMITTED
    ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž์˜ ์ž‘์—…์ด ์™„๋ฃŒ๋œ ๋ฐ์ดํ„ฐ๋งŒ ์กฐํšŒํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค.
    ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๊ฐ€ ๋ณ€๊ฒฝ ์ค‘์ด๋ผ๋ฉด SELECT๋ฅผ ํฌํ•จํ•œ ์–ด๋–ค ์ž‘์—…๋„ ํ•  ์ˆ˜ ์—†๊ณ , ๋Œ€๊ธฐ ํ•˜๋‹ค๊ฐ€ ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๊ฐ€ ๋น„๋กœ์†Œ ์ž‘์—…์ด ์™„๋ฃŒ ๋˜๋ฉด ๋ณ€๊ฒฝ๋œ ๊ฒฐ๊ณผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒ ํ•˜๊ฑฐ๋‚˜ ๋ณ€๊ฒฝ ์ž‘์—…์ด ์ง„ํ–‰๋œ๋‹ค.
    โ‘  ์ผ๋ฐ˜์ ์œผ๋กœ SQL Server ์„ค์น˜ ์‹œ ๊ธฐ๋ณธ ์„ค์ •์ด๋ฉฐ, ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๊ฐ€ ์ž‘์—…์ด ์™„๋ฃŒ๋  ๋•Œ๊นŒ์ง€ ๊ณ„์† ๋Œ€๊ธฐ ์ƒํƒœ์— ์žˆ๋‹ค.
    โ‘ก ORACLE์˜ ๊ฒฝ์šฐ, ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๊ฐ€ ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •ํ•˜๊ณ  ์žˆ๋‹ค ํ•˜๋”๋ผ๋„ ๋ณ€๊ฒฝ ์ „์˜ ๋ฐ์ดํ„ฐ๋กœ ๋Œ€๊ธฐ ์—†์ด ์กฐํšŒ๋œ๋‹ค.
    โ‘ข ์ •ํ™•ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ์ œ๊ณตํ•  ์ˆ˜ ์žˆ์ง€๋งŒ ๋Œ€๊ธฐ์‹œ๊ฐ„์ด ๊ธธ์–ด์ง€๋Š” ๋‹จ์ ์ด ์žˆ๋‹ค.

     

    2. READ UNCOMMITTED
    ํŠธ๋žœ์žญ์…˜์ด ์™„๋ฃŒ๋˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ๋„ ์กฐํšŒ ๊ฐ€๋Šฅํ•˜๋‹ค.
    ๋‹ค๋ฅธ ์„ธ์…˜์—์„œ ํ•ด๋‹น ๋ฐ์ดํ„ฐ๊ฐ€ UPDATE์ค‘์ด์–ด๋„ ์„ธ์…˜2๋Š” ๋Œ€๊ธฐ ์—†์ด SELECT ๋ช…๋ น์ด ์‹คํ–‰๋˜๋Š” ๋Œ€์‹ 
    ํŠธ๋žœ์žญ์…˜ ๋‚ด์—์„œ UPDATE์ž‘์—…์ด ์™„๋ฃŒ๋˜์—ˆ๋‹ค๋ฉด ์•„์ง ํŠธ๋žœ์žญ์…˜์ด ์™„๋ฃŒ๋˜์ง€ ์•Š์•˜๋‹ค๊ณ  ํ•˜๋”๋ผ๋„ ๊ทธ ๋‹น์‹œ์˜ ๋ฐ์ดํ„ฐ๊ฐ€ ์ถœ๋ ฅ ๋œ๋‹ค. (๋ฐ์ดํ„ฐ์˜ ์ •ํ™•๋„๋Š” ๋‚ฎ์ง€๋งŒ ๋Œ€๊ธฐ ์—†์ด ๋น ๋ฅธ ์†๋„๋กœ ์กฐํšŒ๋จ )

    3. REPEATABLE READ
    ํŠธ๋žœ์žญ์…˜ ๋‚ด์—์„œ SELECT ๋œ ๋ฐ์ดํ„ฐ๋Š” ๋‚ด๋ถ€์ ์œผ๋กœ LOCK์ด ์„ค์ • ๋˜์–ด ๋‹ค๋ฅธ ์„ธ์…˜์—์„œ SELECT๋Š” ๊ฐ€๋Šฅํ•˜์ง€๋งŒ UPDATE๋‚˜ DELETEํ•ด์•ผ ํ•  ๊ฒฝ์šฐ ๋Œ€๊ธฐ ์ƒํƒœ๊ฐ€ ๋œ๋‹ค. ํ•˜์ง€๋งŒ INSERT ์ž‘์—…์€ ์–ธ์ œ๋“ ์ง€ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ๊ณ  ๊ทธ ๊ฒฐ๊ณผ๋Š” ๋ชจ๋“  ํŠธ๋žœ์žญ์…˜์—์„œ ๋ฐ”๋กœ ํ™•์ธ ๊ฐ€๋Šฅํ•˜๋‹ค.

    4. SERIALIZABLE

    SERIALIZABLE
    ์€ ๊ฐ€์žฅ ๊ฐ•๋ ฅํ•œ ๊ฒฉ๋ฆฌ์ˆ˜์ค€์„ ๊ฐ–๊ณ  ์žˆ์œผ๋ฉฐ,
    ํ•œ ์„ธ์…˜์—์„œ SELECT ๋œ ๋ฐ์ดํ„ฐ๋Š” ๋‹ค๋ฅธ ์„ธ์…˜์—์„œ SELECT ํ•  ์ˆ˜๋Š” ์žˆ์ง€๋งŒ UPDATE, DELETE ๋ฟ๋งŒ ์•„๋‹ˆ๋ผ ๊ด€๋ จ๋œ ํ‚ค ๊ฐ’์˜ INSERT์ž‘์—…์„ ํ•  ๊ฒฝ์šฐ ๋Œ€๊ธฐ๊ฐ€ ๋ฐœ์ƒ๋œ๋‹ค.
    (
    ํ˜„ ์„ธ์…˜๊ณผ ๊ด€๋ จ ์—†๋Š” ๋ฐ์ดํ„ฐ๋Š” ์•„๋ฌด๋Ÿฐ ๋ฌธ์ œ์—†์ด SELECT, INSERT, UPDATE, DELETE ๋“ฑ ๋ชจ๋“  ์ž‘์—…์ด ์ •์ƒ์ ์œผ๋กœ ์ˆ˜ํ–‰๋œ๋‹ค.)

    5. READ COMMITTED SNAPSHOP
    ORACLE DB
    ์˜ ๊ธฐ๋ณธ ํŠธ๋žœ์žญ์…˜ ๋ชจ๋“œ์™€ ๋งค์šฐ ์œ ์‚ฌํ•˜๋‹ค.
    ํŠธ๋žœ์žญ์…˜ ์ค‘์— ๋ณ€๊ฒฝ๋œ ์ •๋ณด๋Š” ๋‹ค๋ฅธ ์‚ฌ์šฉ์ž๊ฐ€ ๋ณ€๊ฒฝ๋œ ๋‚ด์šฉ์ด ์กฐํšŒ ๋˜์ง€ ์•Š๊ณ  ๋ณ„๋„์˜ ๋Œ€๊ธฐ ํ˜„์ƒ๋„ ์—†๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.
    READ COMMITTED SNAPSHOP
    ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œ์Šคํ…œ ์ „์ฒด์— ์ ์šฉ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ƒ์„ฑํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‹จ์œ„๋กœ ๋ณ€๊ฒฝํ•ด์•ผ ํ•œ๋‹ค. ๋งŒ์•ฝ ๋ณ€๊ฒฝ ํ•˜๊ณ ์ž ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘์†๋œ ์‚ฌ์šฉ์ž๊ฐ€ ์žˆ๋‹ค๋ฉด ์ ‘์†์ด ์ค‘๋‹จ ๋  ์ˆ˜ ์žˆ๋„๋ก ๋‹จ์ผ ์‚ฌ์šฉ์ž ๋ชจ๋“œ์—์„œ ๋ณ€๊ฒฝ ํ›„ ์†์„ฑ์„ ๋ณ€๊ฒฝํ•˜์—ฌ์•ผ ํ•œ๋‹ค.
    READ COMMITTED SNAPSHOP
    ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์˜ ๋ณ€๊ฒฝ์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์†์„ฑ ์ •๋ณด์—์„œ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ ํ•˜์ง€๋งŒ ์ฟผ๋ฆฌ ์ฐฝ์—์„œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

    6. SNAPSHOP

    ์ฒ˜์Œ ์กฐํšŒ๋œ ๋ฐ์ดํ„ฐ๊ฐ€ ๋‹ค๋ฅธ ์„ธ์…˜์—์„œ ์ด๋ฏธ ๋ณ€๊ฒฝ ๋˜๋Š” ์‚ญ์ œ ์ฒ˜๋ฆฌ๊ฐ€ ๋˜๊ณ  ํŠธ๋žœ์žญ์…˜์ด ์™„๋ฃŒ๋˜์—ˆ๋‹ค๊ณ  ํ•˜๋”๋ผ๋„ ๋‹ค์‹œ ์กฐํšŒ ํ•˜์˜€์„ ๊ฒฝ์šฐ ๋™์ผํ•˜๊ฒŒ ๋ฐ์ดํ„ฐ๊ฐ€ ์กฐํšŒ๋˜๋Š” ํŠน์„ฑ์ด ์žˆ๋‹ค. ํ•˜์ง€๋งŒ ์ด ์ •๋ณด๋ฅผ ๋ณ€๊ฒฝ ํ•  ๊ฒฝ์šฐ์—๋Š” ์—…๋ฐ์ดํŠธ ์ถฉ๋Œ๋กœ ์ธํ•ด ์Šค๋ƒ…์ˆ ๊ฒฉ๋ฆฌ ํŠธ๋žœ์žญ์…˜์ด ์ค‘๋‹จ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค๋ผ๋Š” ๋ฉ”์‹œ์ง€์™€ ํ•จ๊ป˜ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒ๋œ๋‹ค. SNAPSHOP ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์‹œ์Šคํ…œ ์ „์ฒด์— ์ ์šฉ ํ•˜๋Š” ๊ฒƒ์ด ์•„๋‹ˆ๋ผ ์ƒ์„ฑํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‹จ์œ„๋กœ ๋ณ€๊ฒฝํ•ด์•ผ ํ•œ๋‹ค. ๋งŒ์•ฝ ๋ณ€๊ฒฝ ํ•˜๊ณ ์ž ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘์†๋œ ์‚ฌ์šฉ์ž๊ฐ€ ์žˆ๋‹ค๋ฉด ์ ‘์†์„ ์ค‘๋‹จํ•  ์ˆ˜ ์žˆ๋„๋ก ๋‹จ์ผ ์‚ฌ์šฉ์ž ๋ชจ๋“œ์—์„œ ๋ณ€๊ฒฝ ํ›„ ์†์„ฑ์„ ๋ณ€๊ฒฝํ•˜์—ฌ์•ผ ํ•œ๋‹ค.
    SNAPSHOP
    ๊ฒฉ๋ฆฌ ์ˆ˜์ค€์˜ ๋ณ€๊ฒฝ์€ READ COMMITTED SNAPSHOP ๊ฒฉ๋ฆฌ์ˆ˜์ค€๊ณผ ๋งˆ์ฐฌ๊ฐ€์ง€๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์†์„ฑ ์ •๋ณด์—์„œ ๋ณ€๊ฒฝ ๊ฐ€๋Šฅ ํ•˜์ง€๋งŒ ์ฟผ๋ฆฌ ์ฐฝ์—์„œ ๋ช…๋ น์–ด๋ฅผ ์‹คํ–‰ ํ•  ์ˆ˜๋„ ์žˆ๋‹ค.

    ๋ฐ˜์‘ํ˜•

    ๋Œ“๊ธ€

Designed by Tistory.