일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
Tags
- 도서
- java
- 함수
- 오류
- Book
- 엑셀
- 톰캣
- DB
- 에러
- Report Designer
- 데이터베이스
- 성능
- MIP
- 회계
- 자바
- 한글
- miplatform
- JavaScript
- 기타소득
- JEUS
- error
- 오라클
- Eclipse
- 마이플랫폼
- 튜닝
- 태그를 입력해 주세요.
- Tomcat
- Excel
- oracle
- 이클립스
Archives
- Today
- Total
어느 가을날의 전환점
MSSQL|SELECT 시 WITH (NOLOCK) 사용하기 본문
MSSQL에서 SELECT 시에 WITH (NOLOCK) 을 주면 공유잠금을 걸지 않고 바로 조회 수행.
MSSQL은 기본적으로 SELECT 시에 공유잠금이 걸린다.
즉, SELECT 문이 수행되는 테이블에 대해서 INSERT, UPDATE, DELETE 문이 수행되고 있다면 SELECT문은 선행 작업이 모두 끝날때까지 LOCK이 걸린다. 이때 SELECT 문에 WITH (NOLOCK)을 추가하면 선행작업의 결과와 관계없이 바로 SELECT문이 수행되어서 결과를 반환하게 된다.
SELECT * FROM TABLE1 WITH (NOLOCK)
SELECT 문장에서 여러 테이블을 조인해서 가져오는 경우 WITH (NOLOCK)을 사용하기 위해서는 모든 테이블에 적어주어야 한다.
프로시저 내에서 사용되는 SELECT 문에서 WITH (NOLOCK)을 사용하기 위해서는 각 문장마다 삽입할 필요없이 프로시저 시작 부분에 다음 문장을 추가해 주면 된다.
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED
예제)
CREATE PROCEDURE 프로시저명
AS
SET TRANSACTION ISOLATION LEVEL READ UNCOMMITTED;
SET NOCOUNT ON;
BEGIN
...
END
'Database > MSSQL' 카테고리의 다른 글
MSSQL|데이터베이스 환경 및 설정 정보 확인 방법 (0) | 2014.09.04 |
---|---|
MSSQL|테이블별 사용 용량 및 Row 수 (0) | 2011.01.25 |
MSSQL|Table Valued Funcion (테이블 반환 함수) (0) | 2010.07.28 |
MSSQL|날짜 형식 함수 - GetDate() (0) | 2010.06.30 |
MSSQL|Dynamic SQL 예제 (다이나믹 쿼리) (0) | 2009.12.30 |
Comments