tempdb 데이터베이스tempdb Database

tempdb 시스템 데이터베이스는 SQL ServerSQL Server 인스턴스에 연결된 모든 사용자가 사용할 수 있는 전역 리소스로서 다음 항목을 보관하는 데 사용됩니다.The tempdb system database is a global resource that is available to all users connected to the instance of SQL ServerSQL Server and is used to hold the following:

  • 전역 또는 로컬 임시 테이블, 임시 저장 프로시저, 테이블 변수, 커서 등 명시적으로 생성된 임시 사용자 개체Temporary user objects that are explicitly created, such as: global or local temporary tables, temporary stored procedures, table variables, or cursors.

  • 스풀 또는 정렬의 중간 결과를 저장하기 위한 작업 테이블 등 SQL Server 데이터베이스 엔진SQL Server Database Engine에서 만든 내부 개체Internal objects that are created by the SQL Server 데이터베이스 엔진SQL Server Database Engine, for example, work tables to store intermediate results for spools or sorting.

  • 행 버전 관리 격리를 사용하여 커밋된 읽기 또는 스냅숏 격리 트랜잭션을 사용하는 데이터베이스의 데이터 수정 트랜잭션에서 생성된 행 버전Row versions that are generated by data modification transactions in a database that uses read-committed using row versioning isolation or snapshot isolation transactions.

  • 온라인 인덱스 작업, MARS(Multiple Active Result Sets) 및 AFTER 트리거 같은 기능에 대한 데이터 수정 트랜잭션에서 생성된 행 버전Row versions that are generated by data modification transactions for features, such as: online index operations, Multiple Active Result Sets (MARS), and AFTER triggers.

    tempdb 내의 작업은 최소한으로 기록됩니다.Operations within tempdb are minimally logged. 이렇게 하면 트랜잭션을 롤백할 수 있습니다.This enables transactions to be rolled back. 시스템이 항상 깨끗한 데이터베이스 복사본으로 시작되도록를 시작할 때마다 tempdb SQL ServerSQL Server 가 다시 생성됩니다.tempdb is re-created every time SQL ServerSQL Server is started so that the system always starts with a clean copy of the database. 연결이 끊길 때 임시 테이블 및 저장 프로시저는 자동으로 제거되고 시스템이 종료될 때 활성 상태인 연결이 없습니다.Temporary tables and stored procedures are dropped automatically on disconnect, and no connections are active when the system is shut down. 따라서 tempdb 에 있는 어떠한 내용도 SQL ServerSQL Server 의 한 세션에서 다른 세션으로 저장되지 않습니다.Therefore, there is never anything in tempdb to be saved from one session of SQL ServerSQL Server to another. tempdb에서는 백업 및 복원 작업이 허용되지 않습니다.Backup and restore operations are not allowed on tempdb.

tempdb의 물리적 속성Physical Properties of tempdb

다음 표에는 tempdb 데이터 및 로그 파일의 초기 구성 값이 나열되어 있습니다.The following table lists the initial configuration values of the tempdb data and log files. 이러한 파일의 크기는 SQL ServerSQL Server버전에 따라 조금씩 다를 수 있습니다.The sizes of these files may vary slightly for different editions of SQL ServerSQL Server.

파일File 논리적 이름Logical name 물리적 이름Physical name 처음 크기Initial size 파일 증가File growth
주 데이터Primary data tempdevtempdev tempdb.mdftempdb.mdf 8MB8 megabytes 디스크가 꽉 찰 때까지 64MB씩 자동 증가Autogrow by 64 MB until the disk is full
보조 데이터 파일Secondary data files temp#temp# tempdb_mssql_#.ndftempdb_mssql_#.ndf 8MB8 megabytes 디스크가 꽉 찰 때까지 64MB씩 자동 증가Autogrow by 64 MB until the disk is full
LogLog templogtemplog templog.ldftemplog.ldf 8MB8 megabytes 최대 2TB까지 64MB씩 자동 증가Autogrow by 64 megabytes to a maximum of 2 terabytes

* 파일의 수는 컴퓨터의 논리 코어 수에 따라 달라집니다.* The number of files depends on the number of (logical) cores on the machine. 값은 코어 수나 8 중에서 더 작은 값입니다.The value will be the number of cores or 8, whichever is lower.
데이터 파일 수의 기본값은 KB 2154845의 일반 지침을 기준으로 합니다.The default value for the number of data files is based on the general guidelines in KB 2154845.

tempdb의 성능 향상Performance Improvements in tempdb

SQL ServerSQL Server에서는 다음과 같은 방법으로 tempdb 의 성능이 향상됩니다.In SQL ServerSQL Server, tempdb performance is improved in the following ways:

  • 임시 테이블과 테이블 변수를 캐시할 수 있습니다.Temporary tables and table variables may be cached. 캐싱을 사용하면 임시 개체를 삭제하고 만드는 작업이 매우 신속하게 실행되며 페이지 할당 경합이 줄어듭니다.Caching allows operations that drop and create the temporary objects to execute very quickly and reduces page allocation contention.

  • 할당 페이지 래치 프로토콜이 향상되어Allocation page latching protocol is improved. 사용되는 UP(업데이트) 래치 수가 줄어듭니다.This reduces the number of UP (update) latches that are used.

  • tempdb 에 대한 로깅 오버헤드가 감소하여Logging overhead for tempdb is reduced. tempdb 로그 파일의 디스크 I/O 대역폭 사용이 줄어듭니다.This reduces disk I/O bandwidth consumption on the tempdb log file.

  • 설치 시에는 새 인스턴스를 설치하는 동안 tempdb 데이터 파일이 여러 개 추가됩니다.Setup adds multiple tempdb data files during a new instance installation. 데이터베이스 엔진 구성 섹션의 새 UI 입력 컨트롤과 명령줄 매개 변수 /SQLTEMPDBFILECOUNT를 사용하여 이 태스크를 수행할 수 있습니다.This task can be accomplished with the new UI input control on the Database Engine Configuration section and a command line parameter /SQLTEMPDBFILECOUNT. 설치 시에는 기본적으로 CPU 수나 8 중에서 더 적은 숫자에 해당하는 만큼의 tempdb 파일이 추가됩니다.By default, setup will add as many tempdb files as the CPU count or 8, whichever is lower.

  • tempdb 데이터 파일이 여러 개이면 모든 파일은 증가 설정에 따라 동시에 같은 크기만큼 증가합니다.When there are multiple tempdb data files, all files will autogrow at same time and by the same amount depending on growth settings. 추적 플래그 1117은 더 이상 필요하지 않습니다.Trace flag 1117 is no longer required.

  • tempdb 의 모든 할당에는 단일 익스텐트가 사용됩니다.All allocations in tempdb use uniform extents. 추적 플래그 1118은 더 이상 필요하지 않습니다.Trace flag 1118 is no longer required.

  • 주 파일 그룹의 경우 AUTOGROW_ALL_FILES 속성이 설정되며 속성을 수정할 수 없습니다.For the primary filegroup, the AUTOGROW_ALL_FILES property is turned on and the property cannot be modified.

tempdb 데이터 및 로그 파일 이동Moving the tempdb Data and Log Files

tempdb 데이터 및 로그 파일을 이동하려면 시스템 데이터베이스 이동을 참조하세요.To move the tempdb data and log files, see Move System Databases.

데이터베이스 옵션Database Options

다음 표에는 tempdb 데이터베이스에 있는 각 데이터베이스 옵션의 기본값과 해당 옵션의 수정 가능 여부가 나열되어 있습니다.The following table lists the default value for each database option in the tempdb database and whether the option can be modified. 이러한 옵션의 현재 설정을 보려면 sys.databases 카탈로그 뷰를 사용하세요.To view the current settings for these options, use the sys.databases catalog view.

데이터베이스 옵션Database option 기본값Default value 수정 가능Can be modified
ALLOW_SNAPSHOT_ISOLATIONALLOW_SNAPSHOT_ISOLATION OFFOFF Yes
ANSI_NULL_DEFAULTANSI_NULL_DEFAULT OFFOFF Yes
ANSI_NULLSANSI_NULLS OFFOFF Yes
ANSI_PADDINGANSI_PADDING OFFOFF Yes
ANSI_WARNINGSANSI_WARNINGS OFFOFF Yes
ARITHABORTARITHABORT OFFOFF Yes
AUTO_CLOSEAUTO_CLOSE OFFOFF 아니요No
AUTO_CREATE_STATISTICSAUTO_CREATE_STATISTICS ONON Yes
AUTO_SHRINKAUTO_SHRINK OFFOFF 아니요No
AUTO_UPDATE_STATISTICSAUTO_UPDATE_STATISTICS ONON Yes
AUTO_UPDATE_STATISTICS_ASYNCAUTO_UPDATE_STATISTICS_ASYNC OFFOFF Yes
CHANGE_TRACKINGCHANGE_TRACKING OFFOFF 아니요No
CONCAT_NULL_YIELDS_NULLCONCAT_NULL_YIELDS_NULL OFFOFF Yes
CURSOR_CLOSE_ON_COMMITCURSOR_CLOSE_ON_COMMIT OFFOFF Yes
CURSOR_DEFAULTCURSOR_DEFAULT GLOBALGLOBAL Yes
데이터베이스 가용성 옵션Database Availability Options ONLINEONLINE

MULTI_USERMULTI_USER

READ_WRITEREAD_WRITE
아니요No

아니오No

아니요No
DATE_CORRELATION_OPTIMIZATIONDATE_CORRELATION_OPTIMIZATION OFFOFF Yes
DB_CHAININGDB_CHAINING ONON 아니요No
ENCRYPTIONENCRYPTION OFFOFF 아니요No
MIXED_PAGE_ALLOCATIONMIXED_PAGE_ALLOCATION OFFOFF 아니요No
NUMERIC_ROUNDABORTNUMERIC_ROUNDABORT OFFOFF Yes
PAGE_VERIFYPAGE_VERIFY SQL ServerSQL Server새 설치의 경우 CHECKSUM입니다.CHECKSUM for new installations of SQL ServerSQL Server.

SQL ServerSQL Server업그레이드의 경우 NONE입니다.NONE for upgrades of SQL ServerSQL Server.
Yes
PARAMETERIZATIONPARAMETERIZATION SIMPLESIMPLE Yes
QUOTED_IDENTIFIERQUOTED_IDENTIFIER OFFOFF Yes
READ_COMMITTED_SNAPSHOTREAD_COMMITTED_SNAPSHOT OFFOFF 아니요No
RECOVERYRECOVERY SIMPLESIMPLE 아니요No
RECURSIVE_TRIGGERSRECURSIVE_TRIGGERS OFFOFF Yes
Service Broker 옵션Service Broker Options ENABLE_BROKERENABLE_BROKER Yes
TRUSTWORTHYTRUSTWORTHY OFFOFF 아니요No

이러한 데이터베이스 옵션에 대한 자세한 내용은 ALTER DATABASE SET 옵션(Transact-SQL)을 참조하세요.For a description of these database options, see ALTER DATABASE SET Options (Transact-SQL).

제한 사항Restrictions

다음 작업은 tempdb 데이터베이스에서 수행할 수 없습니다.The following operations cannot be performed on the tempdb database:

  • 파일 그룹 추가Adding filegroups.

  • 데이터베이스 백업 또는 복원Backing up or restoring the database.

  • 데이터 정렬 변경.Changing collation. 기본 데이터 정렬은 서버 데이터 정렬입니다.The default collation is the server collation.

  • 데이터베이스 소유자 변경.Changing the database owner. tempdbsa가 소유합니다.tempdb is owned by sa.

  • 데이터베이스 스냅숏 만들기Creating a database snapshot.

  • 데이터베이스 삭제Dropping the database.

  • 데이터베이스에서 guest 사용자 삭제Dropping the guest user from the database.

  • 변경 데이터 캡처 설정Enabling change data capture.

  • 데이터베이스 미러링 참여Participating in database mirroring.

  • 주 파일 그룹, 주 데이터 파일 또는 로그 파일 제거Removing the primary filegroup, primary data file, or log file.

  • 데이터베이스 또는 주 파일 그룹 이름 바꾸기Renaming the database or primary filegroup.

  • DBCC CHECKALLOC 실행Running DBCC CHECKALLOC.

  • DBCC CHECKCATALOG 실행Running DBCC CHECKCATALOG.

  • 데이터베이스를 OFFLINE으로 설정Setting the database to OFFLINE.

  • 데이터베이스나 주 파일 그룹을 READ_ONLY로 설정Setting the database or primary filegroup to READ_ONLY.

사용 권한Permissions

모든 사용자가 tempdb에 임시 개체를 만들 수 있습니다.Any user can create temporary objects in tempdb. 사용자가 추가 사용 권한을 받는 경우를 제외하고 자신의 고유 개체에만 액세스할 수 있습니다.Users can only access their own objects, unless they receive additional permissions. tempdb 연결 권한을 취소하여 사용자가 tempdb를 사용하지 못하도록 할 수 있지만 일부 일상적인 작업에서 tempdb를 사용해야 하므로 권장하지 않습니다.It is possible to revoke the connect permission to tempdb to prevent a user from using tempdb, but this is not recommended as some routine operations require the use of tempdb.

인덱스에 대한 SORT_IN_TEMPDB 옵션SORT_IN_TEMPDB Option For Indexes

시스템 데이터베이스System Databases

sys.databases(Transact-SQL)sys.databases (Transact-SQL)

sys.master_files(Transact-SQL)sys.master_files (Transact-SQL)

데이터베이스 파일 이동Move Database Files

참고 항목See Also

SQL Server 2005에서의 tempdb 사용Working with tempdb in SQL Server 2005