SQL Server 2016 Tempdb 성능 향상
- Version : SQL Server 2016
SQL Server에서 Tempdb는 성능 관점에서 매우 중요한 부분이다. 쿼리를 실행할 때 중간 값을 저장하기 위한 용도, 테이블변수, 임시 테이블, 정렬, 해쉬 등에 사용된다.
- Tempdb 경합 확인 및 해결 : http://sqlmvp.kr/140194260164
- Tempdb 경합 : http://sqlmvp.kr/140164023333
아래 링크는 SQL Server 2012, 2014에서 권장하는 tempdb 최적화 구성 방법이다.
- Recommended updates and configuration options for SQL Server 2012 and SQL Server 2014 with high-performance workloads : https://support.microsoft.com/en-us/kb/2964518
SQL Server 2016에서는 tempdb 의 성능 최적화를 위해 디자인이 변경되었다. 간단히 요약하면 위 두 가지 옵션이 기본적으로 적용되어 있다.
-T1118에 해당하는 옵션 설정은 아래 명령으로 대체되었다. (기본값OFF)
MIXED_PAGE_ALLOCATION 옵션 상태는sys.databses의is_mixed_page_allocation_on 컬럼값으로 확인 가능하다.
- sys.databases : https://msdn.microsoft.com/en-us/library/ms178534.aspx
- 0 = uniform extents allocation (OFF)
- 1 = mixed extents allocation (ON)
-T1117에 해당하는 옵션 설정은 아래 명령으로 대체 되었다. (기본값 : AUTOGROW_SINGLE_FILE)
- ALTER DATABASE <dbname> MODIFY FILEGROUP <filegroup> { AUTOGROW_ALL_FILES | AUTOGROW_SINGLE_FILE }
https://msdn.microsoft.com/en-us/library/bb522469.aspx
Filegorup 옵션 상태는 sys.filegroups의is_autogrow_all_files 컬럼값으로 확인 가능하다.
- sys.filegroups : https://msdn.microsoft.com/en-us/library/ms187782.aspx
- 1 : all file grow
- 0 : single file gorw (default)
[참고자료]
- https://blogs.msdn.microsoft.com/psssql/2016/03/15/sql-2016-it-just-runs-faster-t1117-and-t1118-changes-for-tempdb-and-user-databases/
- https://support.microsoft.com/en-us/kb/2964518
- https://msdn.microsoft.com/en-us/library/ms178534.aspx
- https://msdn.microsoft.com/en-us/library/ms187782.aspx
강성욱 / jevida@naver.com
Microsoft SQL Server MVP
Blog : http://sqlmvp.kr
Facebook : http://facebook.com/sqlmvp