다음을 통해 공유


tempdb 데이터베이스

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

  • 전역 또는 로컬 임시 테이블, 임시 저장 프로시저, 테이블 변수 또는 커서와 같이 명시적으로 만들어진 임시 사용자 개체입니다.

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

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

  • 온라인 인덱스 작업, MARS(다중 활성 결과 집합) 및 AFTER 트리거와 같은 기능에 대한 데이터 수정 트랜잭션에 의해 생성되는 행 버전입니다.

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

tempdb의 물리적 속성

다음 표에서는 tempdb 데이터 및 로그 파일의 초기 구성 값을 나열합니다. 이러한 파일의 크기는 SQL Server 버전마다 약간 다를 수 있습니다.

파일 논리적 이름 실제 이름 파일 증가
기본 데이터 템프데브 tempdb.mdf 디스크가 가득 찼을 때까지 10% 자동 증가
로그 templog templog.ldf 10%에서 최대 2테라바이트까지 자동 증가

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 (기본 ANSI NULL 값) 끄기
ANSI_NULLS OFF
ANSI_PADDING (ANSI 표준 여백) OFF
ANSI_WARNINGS (ANSI 경고) OFF
ARITHABORT (아리드어보트) OFF
자동 닫기 OFF 아니오
자동 생성 통계 켜짐
자동 축소 OFF 아니오
자동 통계 업데이트 켜짐
자동_통계_비동기_업데이트 끄기
변경 추적 끄기 아니오
CONCAT_NULL_YIELDS_NULL (NULL 병합 중 null 반환) 끄기
커서_커밋_종료 OFF
기본 커서 글로벌
데이터베이스 가용성 옵션 온라인

다중 사용자

읽기_쓰기
아니오

아니오

아니오
날짜 상관 관계 최적화 끄기
DB 체이닝 켜짐 아니오
암호화 OFF 아니오
NUMERIC_ROUNDABORT (숫자 반올림 중단) OFF
페이지_검증 SQL Server의 새 설치에 대한 CHECKSUM입니다.

SQL Server 업그레이드에 대한 NONE입니다.
매개 변수화 간단한
따옴표로 묶인 식별자 끄기
READ_COMMITTED_SNAPSHOT (읽기 커밋된 스냅샷) 끄기 아니오
복구 간단한 아니오
재귀적 트리거 OFF
Service Broker 옵션 브로커 활성화
신뢰할 수 있는 끄기 아니오

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

제한 사항

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

  • 파일 그룹 추가

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

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

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

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

  • 데이터베이스를 삭제합니다.

  • 데이터베이스에서 게스트 사용자를 삭제합니다.

  • 변경 데이터 캡처를 사용하도록 설정합니다.

  • 데이터베이스 미러링에 참여합니다.

  • 기본 파일 그룹, 기본 데이터 파일 또는 로그 파일을 제거합니다.

  • 데이터베이스 또는 주 파일 그룹의 이름을 변경합니다.

  • DBCC CHECKALLOC를 실행합니다.

  • DBCC CHECKCATALOG를 실행합니다.

  • 데이터베이스를 OFFLINE으로 설정합니다.

  • 데이터베이스 또는 주 파일 그룹을 READ_ONLY 설정합니다.

권한

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

인덱스에 대한 SORT_IN_TEMPDB 옵션

시스템 데이터베이스

sys.databases(Transact-SQL)

sys.master_files(Transact-SQL)

데이터베이스 파일 이동

또한 참조하십시오

SQL Server 2005에서 tempdb 작업