다음을 통해 공유


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 데이터베이스에서 수행할 수 없습니다.

  • 파일 그룹 추가
  • 데이터베이스 백업 또는 복원
  • 데이터 정렬 변경. 기본 데이터 정렬은 서버 데이터 정렬입니다.
  • 데이터베이스 소유자 변경. tempdbdbo가 소유합니다.
  • 데이터베이스 스냅숏 만들기
  • 데이터베이스 삭제
  • 데이터베이스에서 guest 사용자 삭제
  • 데이터베이스 미러링 참여
  • 주 파일 그룹, 주 데이터 파일 또는 로그 파일 제거
  • 데이터베이스 또는 주 파일 그룹 이름 바꾸기
  • DBCC CHECKALLOC 실행
  • DBCC CHECKCATALOG 실행
  • 데이터베이스를 OFFLINE으로 설정
  • 데이터베이스나 주 파일 그룹을 READ_ONLY로 설정

참고 항목

작업

tempdb의 디스크 공간 부족 문제 해결

개념

tempdb 성능 최적화
tempdb의 용량 계획
tempdb 및 인덱스 만들기
시스템 데이터베이스

관련 자료

sys.databases(Transact-SQL)
sys.master_files(Transact-SQL)
데이터베이스 파일 이동

도움말 및 정보

SQL Server 2005 지원 받기

변경 내역

릴리스 내역

2006년 4월 14일

새로운 내용
  • 제한된 작업 목록에 데이터베이스 스냅숏, DBCC CHECKALLOC 및 DBCC CHECKCATALOG를 추가했습니다.
  • tempdb에서는 백업 및 복원 작업이 허용되지 않는다는 내용을 추가했습니다.

2005년 12월 5일

새로운 내용
  • 성능 향상에 대한 섹션을 추가했습니다.
변경된 내용
  • SUPPLEMENTAL_LOGGING 옵션에 대한 참조를 제거했습니다.