임시 테이블
- 기본적으로 로컬 임시 테이블의 이름은 #으로 시작된다.(##가 붙으면 전역 임시 테이블이다.)
- 임시 테이블은 세션이 종료되었을 때 삭제되지 않고 남아있으면 자동으로 삭제된다.
- 임시 테이블은 현재 설정된 데이터베이스에 저장되지 않고 시스템 데이터베이스 tempDB에 저장된다.
단, 데이터 건수가 작을때는 메모리에만 존재하고, tempDB 사이즈가 증가하지 않는다.(데이터가 29K이하 일때는 메모리에 존재)
- 로컬 임시 테이블은 테이블을 만든 세션에서만 사용 가능하고, 전역 임시 테이블은 외부 세션에서도 사용이 가능하다.
테이블 변수
- 테이블 변수의 이름은 @로 시작된다.
- 테이블 변수는 테이블 변수가 정의된 함수 및 저장프로시저 및 일괄 처리가 끝나면 자동으로 정리된다.
- 테이블 변수와 관련된 트랜잭션은 테이블 변수가 업데이트 되는 동안만 지속된다. 따라서 테이블 변수를 사용하면 리소스 잠금과 로깅에 대한 요구가 줄어든다.
임시 테이블과 테이블 변수
필요한 경우
1. 여러 단계를 거쳐 동일한 데이터에 반복작업을 실행할 때.
2. 복잡한 쿼리를 단순화 할때.
3. 서버상의 커서 사용으로 인한 부하를 줄일 때.
차이점
대용량의 데이터를 처리할때 임시 테이블이 유리, 소용량의 데이터를 처리할때는 테이블 변수가 유리하다.
'DB > 관계형 DB' 카테고리의 다른 글
테이블 관리 (0) | 2021.05.14 |
---|---|
데이터 수정 (0) | 2021.05.14 |
저장 프로시저 (0) | 2021.05.12 |
서브쿼리(Subqueries) (0) | 2021.05.07 |
교차 조인(cross join) (0) | 2021.04.29 |