다음을 통해 공유


Azure SQL Managed Instance에 대한 tempdb 설정 구성

적용 대상: Azure SQL Managed Instance

이 문서에서는 Azure SQL Managed Instance에 대한 tempdb 설정을 구성하는 방법을 설명합니다.

Azure SQL Managed Instance를 사용하면 다음을 구성할 수 있습니다.

  • tempdb 파일 수
  • tempdb 파일 증가분
  • 최대 tempdb 크기

tempdb 설정은 인스턴스가 다시 시작되거나 업데이트된 후에도 또는 장애 조치(failover)가 발생한 경우에도 유지됩니다.

개요

tempdb는 Azure SQL Managed Instance와 함께 제공되는 기본 시스템 데이터베이스 중 하나입니다. tempdb의 구조는 다른 사용자 데이터베이스 구조와 동일합니다. 차이점은 비지속적 스토리지에 사용되므로 트랜잭션이 최소한으로 기록된다는 점입니다.

tempdb는 삭제하거나, 분리하거나, 오프라인으로 전환하거나, 이름을 바꾸거나, 복원할 수 없습니다. 이러한 작업을 시도하면 오류가 반환됩니다. tempdb는 서버 인스턴스가 시작될 때마다 다시 생성되며, 인스턴스 업데이트 관리 작업 또는 장애 조치(failover) 후 서비스가 다시 시작될 때 이전 세션 중에 tempdb에서 생성되었을 수 있는 모든 개체가 유지되지 않습니다.

{1}의 워크로드는 다른 사용자 데이터베이스의 워크로드와 다릅니다. 개체와 데이터는 자주 생성되고 제거되며 동시성이 매우 높습니다. 각 관리형 인스턴스에는 하나의 tempdb만 있습니다. 여러 데이터베이스와 애플리케이션이 인스턴스에 연결되어 있더라도 모두 동일한 tempdb 데이터베이스를 사용합니다. 서비스가 많이 사용되는 tempdb에 페이지를 할당하려고 하면 경합이 발생할 수 있습니다. 경합 정도에 따라 관련된 tempdb와 관련된 쿼리 및 요청이 응답하지 않을 수 있습니다. 이것이 tempdb가 서비스 성능에 중요한 이유입니다.

tempdb 파일 수

tempdb 데이터 파일 수를 늘리면 각 데이터 파일에 대해 하나 이상의 GAM 및 SGAM 페이지가 생성되어 tempdb 동시성을 개선하고 PFC 페이지 경합을 줄일 수 있습니다. 그러나 tempdb 데이터 파일 수를 늘리면 다른 성능에 영향을 미칠 수 있으므로 프로덕션 환경에서 구현하기 전에 철저히 테스트합니다.

기본적으로 Azure SQL Managed Instance는 12개의 tempdb 데이터 파일과 1개의 tempdb 로그 파일을 만들지만 이 구성을 수정할 수 있습니다.

tempdb 파일 수를 수정하는 데는 다음과 같은 제한 사항이 있습니다.

  • 새 파일의 논리적 이름은 대/소문자를 구분하지 않으며 최대 16자이며 공백은 없습니다.
  • 최대 tempdb 파일 수는 128개입니다.

참고 항목

새 파일을 추가한 후에는 서버를 다시 시작할 필요가 없습니다. 그러나 빈 파일은 더 높은 우선 순위로 채워지고 시스템을 다시 분산할 때까지 페이지를 할당하기 위한 라운드 로빈 알고리즘이 손실됩니다.

SSMS(SQL Server Management Studio)와 T-SQL(Transact-SQL)을 모두 사용하여 Azure SQL Managed Instance의 tempdb에 대한 파일 수를 변경할 수 있습니다.

SSMS(SQL Server Management Studio)를 사용하여 tempdb 파일 수를 수정할 수 있습니다. 이렇게 하려면 다음 단계를 수행합니다.

  1. SSMS에서 관리되는 인스턴스에 연결합니다.

  2. 개체 탐색기에서 데이터베이스를 확장한 다음, 시스템 데이터베이스를 확장합니다.

  3. tempdb를 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다.

  4. 페이지 선택에서 파일을 선택하여 기존 tempdb 파일 수를 확인합니다.

  5. 파일을 추가하려면 추가를 선택한 다음, 행의 새 데이터 파일에 대한 정보를 제공합니다.

    Screenshot of Database Properties in SSMS, with new database file name highlighted.

  6. tempdb 파일을 제거하려면 데이터베이스 파일 목록에서 제거할 파일을 선택한 다음, 제거를 선택합니다.

증가분

tempdb 파일 증가는 tempdb를 사용하는 쿼리에 성능에 영향을 미칠 수 있습니다. 따라서 tempdb 데이터 파일 증가분이 너무 작으면 범위 조각화가 발생할 수 있고, 너무 크면 증가가 느려지거나 증가 공간이 충분하지 않으면 증가하지 않을 수 있습니다. tempdb 파일 증가분에 대한 최적 값은 워크로드에 따라 달라집니다.

SQL Managed Instance의 기본 증가분은 tempdb 데이터 파일의 경우 254MB, tempdb 로그 파일의 경우 64MB이지만 워크로드에 맞게 조정하고 성능을 조정하도록 증가분을 구성할 수 있습니다.

다음을 고려하십시오.

  • 파일 증가 매개 변수는 int_growth_increment에 대해 KB, MB, GB, TB 및 % 단위를 지원합니다.
  • 증가분은 모든 tempdb 데이터 파일에 대해 동일해야 합니다. 그렇지 않으면 페이지를 할당하는 라운드 로빈 알고리즘이 영향을 받을 수 있습니다.

SSMS(SQL Server Management Studio)와 T-SQL(Transact-SQL)을 모두 사용하여 tempdb 파일의 증가분을 변경할 수 있습니다.

SSMS(SQL Server Management Studio)를 사용하여 tempdb 파일의 증가분을 수정할 수 있습니다. 이렇게 하려면 다음 단계를 수행합니다.

  1. SSMS에서 관리되는 인스턴스에 연결합니다.

  2. 개체 탐색기에서 데이터베이스를 확장한 다음, 시스템 데이터베이스를 확장합니다.

  3. tempdb를 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다.

  4. 페이지 선택에서 파일을 선택하여 기존 tempdb 파일 수를 확인합니다.

  5. 데이터 파일 옆에 있는 줄임표(...)를 선택하여 자동 증가 속성 변경 대화 상자 창을 엽니다.

  6. 자동 증가 사용 옆의 확인란을 선택한 다음, 파일 증가 값을 백분율 또는 메가바이트 단위로 지정하여 자동 증가 설정을 수정합니다.

    Screenshot of Change Autogrowth for tempdev in SSMS, with new database file name highlighted.

  7. 설정을 저장하려면 확인을 선택합니다.

최대 크기

tempdb크기는 모든 tempdb 파일의 합계 크기입니다. tempdb 파일 크기는 해당 tempdb 파일에 할당된(0) 공간입니다. 모든 tempdb 파일의 초기 파일 크기는 인스턴스가 다시 시작되거나 장애 조치(fails over)될 때 모든 tempdb 파일의 크기인 16MB입니다. tempdb 데이터 파일의 사용된 공간이 파일 크기에 도달하면 모든 tempdb 데이터 파일은 구성된 증가율에 따라 자동으로 증가합니다.

tempdb사용된 공간은 모든 tempdb 파일의 사용된 공간의 합계입니다. 사용된 tempdb 파일 공간은 0이 아닌 정보를 사용하는 tempdb 파일 크기의 일부와 같습니다. tempdb사용된 공간tempdb여유 공간의 합은 tempdb 크기와 같습니다.

T-SQL을 사용하여 tempdb 파일에 사용되는 현재 공간과 사용 가능한 공간을 확인할 수 있습니다.

tempdb 데이터 파일의 사용된 공간, 여유 공간 및 크기를 얻으려면 이 명령을 실행합니다.

USE tempdb
SELECT SUM((allocated_extent_page_count)*1.0/128) AS TempDB_used_data_space_inMB, 
	SUM((unallocated_extent_page_count)*1.0/128) AS TempDB_free_data_space_inMB, 
	SUM(total_page_count*1.0/128) AS TempDB_data_size_inMB 
FROM sys.dm_db_file_space_usage

다음 스크린샷은 예제 출력을 보여줍니다.

Screenshot of the query result in SSMS showing used and free space in the tempdb data file.

tempdb 로그 파일의 사용된 공간, 여유 공간 및 크기를 확인하려면 이 명령을 실행합니다.

USE tempdb
SELECT used_log_space_in_bytes*1.0/1024/1024 AS TempDB_used_log_space_inMB,
     (total_log_size_in_bytes- used_log_space_in_bytes)*1.0/1024/1024 AS TempDB_free_log_space_inMB,
     total_log_size_in_bytes*1.0/1024/1024 AS TempDB_log_size_inMB
FROM sys.dm_db_log_space_usage

다음 스크린샷은 예제 출력을 보여줍니다.

Screenshot of the query result in SSMS showing used and free space in the tempdb log file.

tempdb 최대 크기는 tempdb가 더 이상 커질 수 없는 한도입니다.

SQL Managed Instance의 tempdb 최대 크기에는 다음과 같은 제한 사항이 있습니다.

  • 범용 서비스 계층에서 tempdb의 최대 크기는 24GB/vCore(96~1920GB)로 제한되며 로그 파일은 120GB입니다.
  • 중요 비즈니스용 서비스 계층에서 tempdb는 리소스를 놓고 다른 데이터베이스와 경쟁하므로 예약된 저장소는 tempdb와 다른 데이터베이스 간에 공유됩니다. tempdb 로그 파일의 최대 크기는 2TB입니다.

tempdb 파일은 서비스 계층에서 허용하는 최대 제한 또는 수동으로 구성된 최대 tempdb 파일 크기에 도달할 때까지 증가합니다.

SSMS(SQL Server Management Studio)와 T-SQL(Transact-SQL)을 모두 사용하여 tempdb 파일의 최대 크기를 변경할 수 있습니다.

SSMS에서 현재 tempdb 최대 크기를 확인하려면 다음 단계를 수행합니다.

  1. SSMS에서 관리되는 인스턴스에 연결합니다.
  2. 개체 탐색기에서 데이터베이스를 확장한 다음, 시스템 데이터베이스를 확장합니다.
  3. tempdb를 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다.
  4. 일반 페이지에서 데이터베이스 아래의 크기 값을 확인하여 최대 tempdb 크기를 확인합니다. -1 값은 tempdb 최대 크기가 무제한임을 나타냅니다.

Screenshot of tempdb database properties showing the max size for tempdb in SSMS.

SSMS에서 현재 tempdb 최대 크기를 변경하려면 다음 단계를 수행합니다.

  1. SSMS에서 관리되는 인스턴스에 연결합니다.
  2. 개체 탐색기에서 데이터베이스를 확장한 다음, 시스템 데이터베이스를 확장합니다.
  3. tempdb를 마우스 오른쪽 단추로 클릭하고 속성을 선택합니다.
  4. 페이지 선택에서 파일을 선택하여 기존 tempdb 파일 수를 확인합니다.
  5. 데이터 파일 옆에 있는 줄임표(...)를 선택하여 자동 증가 속성 변경 대화 상자 창을 엽니다.
  6. 최대 파일 크기 아래의 값을 변경하여 tempdb 최대 크기 설정을 수정합니다.
  7. 설정을 저장하려면 확인을 선택합니다.

Screenshot of the change autogrowth dialog box in SSMS, with maximum file size highlighted.

tempdb 한도

다음 표에서는 다양한 tempdb 구성 설정에 대한 한도를 정의합니다.

구성 설정
tempdb 파일의 논리적 이름 최대 16자
tempdb 파일 수 최대 128개 파일
기본 tempdb 파일 수 13개(로그 파일 1개 + 데이터 파일 12개)
tempdb 데이터 파일의 초기 크기 16MB
tempdb 데이터 파일의 기본 증가분 256MB
tempdb 로그 파일의 초기 크기 16MB
tempdb 로그 파일의 기본 증가분 64MB
초기 최대 tempdb 크기 -1(무제한)
tempdb의 최대 크기 스토리지 크기까지

다음 단계