--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 |