-- MSSQL
테이블변수
어린왕자악꿍
2009. 6. 10. 17:58
커서 : 사용 시 사용부분을 잠금
테이블변수 : 사용 시 사용부분을 잠그지 않음
커서를 사용해야 할 경우, 대신해서 테이블변수를 사용하면 성능에 향상이 기대된다.
SELECT * FROM TEST WITH (NOLOCK)
DECLARE @TEST TABLE
(
NUM INT NOT NULL
)
INSERT @TEST (NUM)
SELECT NUM
FROM TEST WITH (NOLOCK)
SELECT * FROM @TEST
추가) 2014.09.25
임시테이블과 테이블변수
임시테이블은 아래와 같이 사용할 수 있다.
WITH 임시테이블명 AS
(
SELECT * FROM TEST
)
SELECT * FROM 임시테이블명
임시테이블과 테이블변수는 모두 데이터를 쿼리 시 tempDB에 저장하여 사용한다.
테이블변수는 기본키만 설정이 가능하고, 인덱스 등도 사용할 수 없다.
임시테이블은 트랜잭션을 지원하지만 테이블변수는 트랙잭션을 지원하지 않는다.
임시테이블은 통계 및 재컴파일을 지원하지만 테이블변수는 지원하지 않는다.