2007~2011/SQL Server2008. 10. 27. 19:35

SQL Server의 Tempdb 성능 최적화를 위해 고려해야 할 사항에 대해서 아래와 같이 정리하였습니다. 절대적인 권장 설정은 아닙니다. 환경에 따라 달라질 수 있습니다.

1. tempdb 데이터 파일을 여러 개로 분산할 경우 병목이 줄고 확장성이 증가합니다.  I/O가 빠른 디스크에(스트라이프 사용) 배치하며, 사용자 데이터베이스와 다른 디스크에 저장하는 것을 권장합니다. 하지만 너무 많이 생성해도 성능 감소 및 오버헤드가 늘어날 수 있습니다.

2. 일반적으로 CPU당 각각 하나의 데이터 파일을 생성합니다. Dual Core는 2개의 CPU를 적용합니다.

3. tempdb 자동 확장에 따른 성능 부하를 줄이기 위해 최대 크기를 예상하여 적절하게 설정합니다.

4. 각 데이터 파일을 동일한 크기로 생성할 경우, 비례 채우기 성능이 최적화 됩니다.

5. tempdb 를 위한 별도의 독립된 디스크 사용을 권장합니다.

6. 시작 매개 변수 -T1118 Trace Flag 설정 사용

아래 쿼리를 사용하여 CPU Core 개수에 맞게 Tempdb 의 데이터 파일을 추가할 수 있습니다.

-- 이미 생성되어 있는 Tempdev 파일의 SIZE, FILEGROWTH 변경
ALTER DATABASE Tempdb
MODIFY FILE (NAME = 'Tempdev',
               SIZE = 100MB,
               FILEGROWTH = 50MB
)

-- Tempdev(n) 파일 추가
ALTER DATABASE
Tempdb
ADD FILE (NAME = 'Tempdev2',
               FILENAME = 'S:\Microsoft SQL Server\MSSQL.1\MSSQL\DATA\Tempdb2.ndf',
               SIZE = 100MB,
               FILEGROWTH = 50MB
)



[참고자료]
tempdb 성능 최적화
http://msdn.microsoft.com/ko-kr/library/ms175527.aspx

FIX: tempdb 데이터베이스에 대한 동시성 강화
http://support.microsoft.com/kb/328551/ko

tempdb 데이터베이스
http://technet.microsoft.com/ko-kr/library/ms190768(SQL.90).aspx


작성자 : Lai Go / 작성일자 : 2008.10.27

Posted by Lai Go