다음을 통해 공유


tempdb 데이터베이스

tempdb 시스템 데이터베이스는 SQL Server instance 연결된 모든 사용자가 사용할 수 있는 전역 리소스이며 다음을 보유하는 데 사용됩니다.

  • 전역 또는 로컬 임시 테이블, 임시 저장 프로시저, 테이블 변수, 커서 등 명시적으로 생성된 임시 사용자 개체

  • SQL Server 데이터베이스 엔진에서 만든 내부 개체(예: 스풀 또는 정렬에 대한 중간 결과를 저장하는 작업 테이블).

  • 행 버전 관리 격리를 사용하여 커밋된 읽기 또는 스냅샷 격리 트랜잭션을 사용하는 데이터베이스의 데이터 수정 트랜잭션에서 생성된 행 버전

  • 온라인 인덱스 작업, MARS(Multiple Active Result Sets) 및 AFTER 트리거 같은 기능에 대한 데이터 수정 트랜잭션에서 생성된 행 버전

tempdb 내의 작업은 최소한으로 기록됩니다. 이렇게 하면 트랜잭션을 롤백할 수 있습니다. tempdb는 시스템이 항상 데이터베이스의 클린 복사본으로 시작되도록 SQL Server 시작할 때마다 다시 만들어집니다. 연결이 끊길 때 임시 테이블 및 저장 프로시저는 자동으로 제거되고 시스템이 종료될 때 활성 상태인 연결이 없습니다. 따라서 tempdb에는 SQL Server 세션에서 다른 세션으로 저장할 것이 없습니다. tempdb에서는 백업 및 복원 작업이 허용되지 않습니다.

tempdb의 물리적 속성

다음 표에는 tempdb 데이터 및 로그 파일의 초기 구성 값이 나열되어 있습니다. 이러한 파일의 크기는 SQL Server버전에 따라 조금씩 다를 수 있습니다.

파일 논리적 이름 물리적 이름 파일 증가
주 데이터 tempdev tempdb.mdf 디스크가 꽉 찰 때까지 10%씩 자동 증가
로그 templog templog.ldf 최대 2TB까지 10%씩 자동 증가

tempdb의 크기는 시스템의 성능에 영향을 줄 수 있습니다. 예를 들어 tempdb 크기가 너무 작으면 SQL Server 시작할 때마다 워크로드 요구 사항을 지원하기 위해 데이터베이스를 자동 증가시키는 데 시스템 처리가 너무 많이 사용될 수 있습니다. tempdb의 크기를 늘려 이 오버헤드를 방지할 수 있습니다.

tempdb의 성능 향상

SQL Server 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 켜기
AUTO_SHRINK OFF
AUTO_UPDATE_STATISTICS 켜기
AUTO_UPDATE_STATISTICS_ASYNC OFF
CHANGE_TRACKING 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 켜기
ENCRYPTION OFF
NUMERIC_ROUNDABORT OFF
PAGE_VERIFY SQL Server 새 설치를 위한 CHECKSUM입니다.

SQL Server 업그레이드를 위한 NONE입니다.
PARAMETERIZATION SIMPLE
QUOTED_IDENTIFIER OFF
READ_COMMITTED_SNAPSHOT OFF
RECOVERY SIMPLE
RECURSIVE_TRIGGERS OFF
Service Broker 옵션 ENABLE_BROKER
TRUSTWORTHY OFF

이러한 데이터베이스 옵션에 대한 자세한 내용은 ALTER DATABASE SET 옵션(Transact-SQL)을 참조하세요.

제한

tempdb 데이터베이스에서는 다음 작업을 수행할 수 없습니다.

  • 파일 그룹 추가

  • 데이터베이스 백업 또는 복원

  • 데이터 정렬 변경. 기본 데이터 정렬은 서버 데이터 정렬입니다.

  • 데이터베이스 소유자 변경. tempdbsa가 소유합니다.

  • 데이터베이스 스냅샷 만들기

  • 데이터베이스 삭제

  • 데이터베이스에서 guest 사용자 삭제

  • 변경 데이터 캡처 설정

  • 데이터베이스 미러링 참여

  • 주 파일 그룹, 주 데이터 파일 또는 로그 파일 제거

  • 데이터베이스 또는 주 파일 그룹 이름 바꾸기

  • DBCC CHECKALLOC 실행

  • DBCC CHECKCATALOG 실행

  • 데이터베이스를 OFFLINE으로 설정

  • 데이터베이스나 주 파일 그룹을 READ_ONLY로 설정

사용 권한

모든 사용자가 tempdb에 임시 개체를 만들 수 있습니다. 사용자가 추가 사용 권한을 받는 경우를 제외하고 자신의 고유 개체에만 액세스할 수 있습니다. tempdb 연결 권한을 취소하여 사용자가 tempdb를 사용하지 못하도록 할 수 있지만 일부 일상적인 작업에서 tempdb를 사용해야 하므로 권장하지 않습니다.

인덱스에 대한 SORT_IN_TEMPDB 옵션

시스템 데이터베이스

sys.databases(Transact-SQL)

sys.master_files(Transact-SQL)

데이터베이스 파일 이동

참고 항목

2005년 SQL Server tempdb 작업