tempdb 데이터베이스
업데이트: 2006년 4월 14일
tempdb 시스템 데이터베이스는 SQL Server 인스턴스에 연결된 모든 사용자가 사용할 수 있는 전역 리소스로서 다음 항목을 보관하는 데 사용됩니다.
- 전역 또는 로컬 임시 테이블, 임시 저장 프로시저, 테이블 변수, 커서 등 명시적으로 생성된 임시 사용자 개체
- 스풀 또는 정렬의 중간 결과를 저장하기 위한 작업 테이블 등 SQL Server 2005 데이터베이스 엔진에서 만든 내부 개체
- 행 버전 관리 격리를 사용하여 커밋된 읽기 또는 스냅숏 격리 트랜잭션을 사용하는 데이터베이스의 데이터 수정 트랜잭션에서 생성된 행 버전
- 온라인 인덱스 작업, MARS(Multiple Active Result Sets), AFTER 트리거 등의 기능을 위해 데이터 수정 트랜잭션에서 생성된 행 버전
tempdb 내의 작업은 최소한으로 기록됩니다. 이렇게 하면 트랜잭션을 롤백할 수 있습니다. 시스템이 항상 깨끗한 데이터베이스 복사본으로 시작되도록 SQL Server를 시작할 때마다 tempdb가 다시 생성됩니다. 연결이 끊길 때 임시 테이블 및 저장 프로시저가는 자동으로 제거되고 시스템이 종료될 때 활성 상태인 연결이 없습니다. 따라서 tempdb에 있는 어떠한 내용도 SQL Server의 한 세션에서 다른 세션으로 저장되지 않습니다. tempdb에서는 백업 및 복원 작업이 허용되지 않습니다.
tempdb의 물리적 속성
다음 표에는 tempdb 데이터 및 로그 파일의 초기 구성 값이 나열되어 있습니다. 이러한 파일의 크기는 SQL Server 2005 버전에 따라 조금씩 다를 수 있습니다.
파일 | 논리적 이름 | 물리적 이름 | 파일 증가 |
---|---|---|---|
주 데이터 |
tempdev |
tempdb.mdf |
디스크가 꽉 찰 때까지 10%씩 자동 증가 |
로그 |
templog |
templog.ldf |
최대 2TB까지 10%씩 자동 증가 |
tempdb의 크기는 시스템 성능에 영향을 줄 수 있습니다. 예를 들어 tempdb 크기가 너무 작은 경우에는 SQL Server를 시작할 때마다 작업 요구 사항을 지원하기 위해 처리 시스템이 데이터베이스를 자동 확장하는 중이라 사용 가능하지 않을 수도 있습니다. tempdb의 크기를 늘려 이 오버헤드를 방지할 수 있습니다. 자세한 내용은 tempdb 성능 최적화 및 tempdb의 용량 계획을 참조하십시오.
tempdb의 성능 향상
SQL Server 2005에서는 다음과 같은 방법으로 tempdb의 성능이 향상됩니다.
- 임시 테이블과 테이블 변수를 캐시할 수 있습니다. 캐싱을 사용하면 임시 개체를 삭제하고 만드는 작업이 매우 신속하게 실행되며 페이지 할당 경합이 줄어듭니다.
- 할당 페이지 래치 프로토콜이 향상되어 사용되는 UP(업데이트) 래치 수가 줄어듭니다.
- tempdb에 대한 로깅 오버헤드가 감소하여 tempdb 로그 파일의 디스크 I/O 대역폭 사용이 줄어듭니다.
- tempdb에 혼합 페이지를 할당하는 알고리즘이 향상되었습니다.
tempdb 데이터 및 로그 파일 이동
tempdb 데이터 및 로그 파일을 이동하려면 시스템 데이터베이스 이동을 참조하십시오.
데이터베이스 옵션
다음 표에는 tempdb 데이터베이스에 있는 각 데이터베이스 옵션의 기본값과 해당 옵션의 수정 가능 여부가 나열되어 있습니다. 이러한 옵션의 현재 설정을 보려면 sys.databases 카탈로그 뷰를 사용하십시오.
데이터베이스 옵션 | 기본값 | 수정 가능 |
---|---|---|
ALLOW_SNAPSHOT_ISOLATION |
OFF |
예 |
ANSI_NULL_DEFAULT |
OFF |
예 |
ANSI_NULLS |
OFF |
예 |
ANSI_PADDING |
OFF |
예 |
ANSI_WARNINGS |
OFF |
예 |
ARITHABORT |
OFF |
예 |
AUTO_CLOSE |
OFF |
아니요 |
AUTO_CREATE_STATISTICS |
ON |
예 |
AUTO_SHRINK |
OFF |
아니요 |
AUTO_UPDATE_STATISTICS |
ON |
예 |
AUTO_UPDATE_STATISTICS_ASYNC |
OFF |
예 |
CONCAT_NULL_YIELDS_NULL |
OFF |
예 |
CURSOR_CLOSE_ON_COMMIT |
OFF |
예 |
CURSOR_DEFAULT |
GLOBAL |
예 |
데이터베이스 가용성 옵션 |
ONLINE MULTI_USER READ_WRITE |
아니요 아니요 아니요 |
DATE_CORRELATION_OPTIMIZATION |
OFF |
예 |
DB_CHAINING |
ON |
아니요 |
NUMERIC_ROUNDABORT |
OFF |
예 |
PAGE_VERIFY |
NONE |
아니요 |
PARAMETERIZATION |
SIMPLE |
예 |
QUOTED_IDENTIFIER |
OFF |
예 |
READ_COMMITTED_SNAPSHOT |
OFF |
아니요 |
RECOVERY |
SIMPLE |
아니요 |
RECURSIVE_TRIGGERS |
OFF |
예 |
Service Broker 옵션 |
ENABLE_BROKER |
예 |
TRUSTWORTHY |
OFF |
아니요 |
이러한 데이터베이스 옵션에 대한 자세한 내용은 ALTER DATABASE(Transact-SQL)를 참조하십시오.
제한 사항
다음 작업은 tempdb 데이터베이스에서 수행할 수 없습니다.
- 파일 그룹 추가
- 데이터베이스 백업 또는 복원
- 데이터 정렬 변경. 기본 데이터 정렬은 서버 데이터 정렬입니다.
- 데이터베이스 소유자 변경. tempdb는 dbo가 소유합니다.
- 데이터베이스 스냅숏 만들기
- 데이터베이스 삭제
- 데이터베이스에서 guest 사용자 삭제
- 데이터베이스 미러링 참여
- 주 파일 그룹, 주 데이터 파일 또는 로그 파일 제거
- 데이터베이스 또는 주 파일 그룹 이름 바꾸기
- DBCC CHECKALLOC 실행
- DBCC CHECKCATALOG 실행
- 데이터베이스를 OFFLINE으로 설정
- 데이터베이스나 주 파일 그룹을 READ_ONLY로 설정
참고 항목
작업
개념
tempdb 성능 최적화
tempdb의 용량 계획
tempdb 및 인덱스 만들기
시스템 데이터베이스
관련 자료
sys.databases(Transact-SQL)
sys.master_files(Transact-SQL)
데이터베이스 파일 이동
도움말 및 정보
변경 내역
릴리스 | 내역 |
---|---|
2006년 4월 14일 |
|
2005년 12월 5일 |
|