MSSQL DB - EX09_2

반응형

--10 / 12
--Lock and Isolation Level ( Session 2 )
USE exampledb

SELECT * FROM bankaccount

UPDATE bankaccount SET balance = 1000

--1.
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED

DBCC USEROPTIONS

SELECT * FROM bankaccount

--2   --읽는 쪽에서 설정해줘야 한다 COMMITTED
SET TRANSACTION ISOLATION LEVEL READ COMMITTED -- 다른데서 작업중이면 못 읽게!

DBCC USEROPTIONS

SELECT * FROM bankaccount

--3.
SET TRANSACTION ISOLATION LEVEL REPEATABLE READ
DBCC USEROPTIONS

UPDATE bankaccount
SET balance = balance - 500
WHERE ac_owner = '장동건'

UPDATE bankaccount
SET balance = balance + 500
WHERE ac_owner = '김윤석'

--4.
SET TRANSACTION ISOLATION LEVEL READ COMMITTED
DBCC USEROPTIONS

INSERT INTO bankaccount VALUES ('안종혁', 9000)
INSERT INTO bankaccount VALUES ('이상혁', 9000)

-- ISOLATION LEVEL             리드 모드

-- READ UNCOMMITTED  --문제--> 더티 리드(Dirty Read, 커밋되지 않은 데이터를 읽기)
--                        ↙───해결─────┘
-- READ COMMITTED -------------> UNREPEATABLE READ
--                       ↙───해결─────┘
-- REPEATABLE READ ------------> Phantom READ
--                       ↙───해결─────┘
-- SERIALIZABLE   -------------> 문제 없음(성능이 느려짐)

반응형

'프로그램 > MSSQL SERVER 2008R2' 카테고리의 다른 글

MSSQL DB - EX11  (0) 2010.10.13
MSSQL DB - EX10  (1) 2010.10.13
MSSQL DB - EX09_1  (0) 2010.10.13
MSSQL DB - EX08  (0) 2010.10.13
MSSQL DB - EX07  (1) 2010.10.08
  • 네이버 블로그 공유
  • 네이버 밴드 공유
  • 페이스북 공유
  • 카카오스토리 공유