MSSQL - 테이블 변수와 임시 테이블 차이 간단 정리

 

  테이블 변수 임시 테이블
선언 DECLARE 키워드 사용,
@를 이용한 변수의 형태의 이름을 가짐
CREATE TABLE 키워드 사용,
#로 시작하는 테이블 이름을 가짐
데이터 저장 메모리 내에서만 저장 시스템 데이터베이스 TempDB에 저장
I/O 연산 메모리를 사용하기 때문에 빠름 주로 디스크를 사용하기 때문에 비교적 느림
사용 범위 선언된 루틴(프로시저, 함수) 내에서만 사용 사용 가능한 모든 세션에서 사용
생명 주기 정의된 함수 및 프로시저 및 일괄 처리가 끝나면 자동으로 정리 세션이 종료되거나 SQL Server가 종료될 때까지 유지,
혹은 명시적으로 삭제될 때까지 유지
사용 키워드 SELECT, INSERT, UPDATE, DELETE문 사용 SELECT, INSERT, UPDATE, DELETE, ALTER TABLE, CREATE INDEX문 사용 (+BULK INSERT)
인덱스 및 통계 정보 인덱스나 통계 정보 생성하지 않음 인덱스와 통계 정보 생성함
즉, 최적화를 통한 쿼리 성능 개선 가능
사용 시점 비교적 적은 데이터셋을 처리할 때,
루틴 내에서 임시 데이터 저장이 필요할 때
대량의 데이터를 처리할 때,
세션 간 데이터 공유가 필요할 때