tempdb 성능 최적화

업데이트: 2005년 12월 5일

tempdb 데이터베이스의 크기와 물리적인 배치는 시스템 성능에 영향을 줄 수 있습니다. 예를 들어 tempdb에 대해 정의된 크기가 너무 작으면 사용자가 SQL Server 인스턴스를 다시 시작할 때마다 시스템의 처리 로드 중 일부가 작업을 지원하는 데 필요한 크기로 tempdb를 자동 증가시키기 위해 소모될 수 있습니다. tempdb 데이터와 로그 파일의 크기를 늘려 이 오버헤드를 방지할 수 있습니다. tempdb에 필요한 디스크 공간을 결정하는 방법은 tempdb의 용량 계획을 참조하십시오.

tempdb 크기 및 배치 권장 구성

tempdb 성능을 최적화하려면 프로덕션 환경에서 tempdb를 다음과 같이 구성하는 것이 좋습니다.

  • tempdb의 복구 모델을 SIMPLE로 설정합니다. 이 모델은 로그 공간을 자동으로 회수하여 공간 요구 사항을 적게 유지합니다.
    자세한 내용은 ALTER DATABASE(Transact-SQL) 또는 방법: 데이터베이스의 복구 모델 보기 또는 변경(SQL Server Management Studio)을 참조하십시오.

  • 필요에 따라 자동 증가되도록 tempdb 파일을 설정합니다. 이렇게 하면 디스크가 꽉 찰 때까지 파일이 증가할 수 있습니다.

    [!참고] 프로덕션 환경에서 자동 증가 작업 중 응용 프로그램 제한 시간이 초과되는 것을 허용하지 않는 경우 예상 작업에 충분한 공간을 미리 할당합니다.

  • 파일 증가분을 적정 크기로 설정하여 tempdb 데이터베이스 파일 증가 단위가 너무 작지 않게 합니다. tempdb에 기록되는 데이터 양에 비해 파일 증가 단위가 너무 작으면 tempdb가 지속적으로 확장되어 성능에 영향을 줍니다. tempdb 파일의 FILEGROWTH 증분 설정에 대한 다음 일반 지침을 따르는 것이 좋습니다.

    tempdb 파일 크기 FILEGROWTH 증분

    0MB - 100MB

    10MB

    100MB - 200MB

    20MB

    200MB 이상

    10%*

    * tempdb 파일이 있는 I/O 하위 시스템의 속도에 따라 이 비율을 조정해야 할 수도 있습니다. 래치 제한 시간이 초과되는 것을 방지하려면 자동 증가 작업을 약 2분으로 제한하는 것이 좋습니다. 예를 들어 I/O 하위 시스템이 초당 50MB의 속도로 파일을 초기화할 수 있는 경우 tempdb 파일 크기에 관계없이 FILEGROWTH 증분을 최대 6GB로 설정해야 합니다. 가능하면 자동 증가 작업의 성능을 향상시키기 위해 즉시 데이터베이스 파일 초기화를 사용합니다.

  • 환경의 일반적인 작업량을 수용할 수 있는 값으로 파일 크기를 설정하여 모든 tempdb 파일에 충분한 공간을 미리 할당합니다. 이렇게 하면 tempdb가 너무 자주 확장되어 성능에 영향을 주는 것을 방지할 수 있습니다. tempdb 데이터베이스가 자동 증가되도록 설정해야 하지만 이 기능은 예기치 않은 예외 발생 시 디스크 공간을 늘리기 위해 사용해야 합니다.

  • 필요한 수만큼 파일을 만들어 디스크 대역폭을 최대화합니다. 여러 개의 파일을 사용하면 tempdb 저장소에 대한 경합이 줄고 확장성이 훨씬 증가합니다. 그러나 파일을 너무 많이 만들어도 성능이 감소하고 관리 오버헤드가 늘어날 수 있습니다. 일반적인 지침으로, 서버에 있는 CPU당 각각 하나의 데이터 파일을 만들고(affinity mask 설정 고려) 필요에 따라 파일 수를 늘리거나 줄여서 조정합니다. 이중 코어 CPU는 두 개의 CPU로 간주됩니다.

  • 각 데이터 파일을 동일한 크기로 만듭니다. 이렇게 하면 비례 채우기 성능이 최적화됩니다.

  • tempdb 데이터베이스를 고속 I/O 하위 시스템에 배치합니다. 직접 연결되어 있는 디스크가 많으면 디스크 스트라이프를 사용합니다.

  • 사용자 데이터베이스에 사용되는 디스크와는 다른 디스크에 tempdb 데이터베이스를 배치합니다.

추가 권장 사항은 Working with tempdb in SQL Server 2005를 참조하십시오.

tempdb 크기 및 증가 매개 변수 수정

다음 방법 중 하나를 사용하여 tempdb 데이터 또는 로그 파일의 크기 및 파일 증가 매개 변수를 수정할 수 있습니다.

파일 크기 및 파일 증가 매개 변수의 값은 tempdb가 생성될 때마다 사용됩니다. 예를 들어 tempdb 데이터 파일의 크기를 20MB로 늘리고 파일 증가분을 15%로 늘리면 새 값이 즉시 적용됩니다. 후속 트랜잭션 작업으로 tempdb의 크기가 증가한 경우 SQL Server 인스턴스를 다시 시작할 때마다 데이터 파일 크기가 20MB로 돌아갑니다.

tempdb 크기 및 증가 매개 변수 보기

다음 방법 중 하나를 사용하여 tempdb 데이터 또는 로그 파일의 크기 및 파일 증가 매개 변수를 볼 수 있습니다.

  • SQL Server Management Studio

  • 다음 쿼리를 실행합니다.

    SELECT 
        name AS FileName, 
        size*1.0/128 AS FileSizeinMB,
        CASE max_size 
            WHEN 0 THEN 'Autogrowth is off.'
            WHEN -1 THEN 'Autogrowth is on.'
            ELSE 'Log file will grow to a maximum size of 2 TB.'
        END,
        growth AS 'GrowthValue',
        'GrowthIncrement' = 
            CASE
                WHEN growth = 0 THEN 'Size is fixed and will not grow.'
                WHEN growth > 0 AND is_percent_growth = 0 
                    THEN 'Growth value is in 8-KB pages.'
                ELSE 'Growth value is a percentage.'
            END
    FROM tempdb.sys.database_files;
    GO
    

참고 항목

작업

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

개념

tempdb 데이터베이스
tempdb의 용량 계획

관련 자료

데이터베이스 최적화
ALTER DATABASE(Transact-SQL)
sys.database_files(Transact-SQL)

도움말 및 정보

SQL Server 2005 지원 받기

변경 내역

릴리스 내역

2005년 12월 5일

새로운 내용
  • 무제한 파일 증가 및 SIMPLE 복구 모델에 대한 권장 구성을 추가했습니다.
  • "tempdb 크기 및 증가 매개 변수 수정" 및 "tempdb 크기 및 증가 매개 변수 보기" 섹션을 추가했습니다.