'new features'에 해당되는 글 1건
- 2017.02.24 MS-SQL 2016 New Features
MS-SQL 2016 New Features
1. SQL Server 2016 (데이터베이스 엔진) 의 새로운 기능
- Automatic Soft NUMA
n SQL Server 2016에서는 한 NUMA 노드에 8개 이상의 processor가 있을 경우 자동으로 Soft-NUMA를 구성해 확장성을 높여줌
- Dynamic Memory Object (CMemThread) Partitioning
n CMemThread 병목 발생시 자동으로 per NUMA or per CPU Partitioning으로 변경해 CMemThread 대기 완화
- Multiple Log Writers
n 인스턴스당 4개까지(one per H/W NUMA node) Log Writer thread 생성
- Parallel Recovery
n Database Recovery 단계 중 Redo에 대해 병렬 처리
- SOS_RWLock
n RWLock은 Internal Structure에 대한 일관성을 위해 사용되는 동기화 개체로 SQL Server 2014까지는 내부적으로 spinlock이 사용되었습니다.
n SQL Server 2016에서는 불필요한 spinlock 대기를 없애도록 re-design되어 scalability를 높임
- DBCC CHECK* 성능 향상
n 1TB 데이터베이스에 대한 내부 테스트 결과 7배 성능 향상
- In-direct Checkpoint 기본
n In-direct checkpoint는 SQL Server 2014에서 추가된 기능이며, SQL Server 2016에서는 Default 설정으로 적용됩니다.
- Larger Data Writes
n 2016 이전은 한번에 최대 32 Data Pages (256KB)를 Write하였으며, SQL 2016에서는 최대 128 pages (1MB)로 대량 쓰기 성능 향상됨
(LazyWriter, Checkpoint, Bulk Insert 등에 사용)
- OPTION (USE HINT('<hint1>', '<hint2>'))
같은 보다 일반적인 쿼리 힌트 모델에 대한 지원이 추가 ( SP1 , https://support.microsoft.com/ko-kr/help/3189813/update-introduces-use-hint-query-hint-argument-in-sql-server-2016)
n
use hint
모양이 추가됨, 보다 직관 적인 힌트 형태가 사용 되어짐.
SELECT * FROM Person.Address
WHERE City = 'SEATTLE' AND PostalCode = 98104
OPTION (RECOMPILE, USE HINT ('ASSUME_MIN_SELECTIVITY_FOR_FILTER_ESTIMATES', 'DISABLE_PARAMETER_SNIFFING'));
GO
- sys.dm_exec_valid_use_hints DMV가 추가됨 – 모든 힌트 목록을 확인 할 수 있음
- sys.dm_exec_query_statistics_xml DMV이 추가되어 실행 계획 XML 임시 통계 추가 : 기존에 query plan을 수집하기 위해 했던 작업이 간소화 해 짐.
- estimated_read_row_count
열이 sys.dm_exec_query_profiles에 추가 (SQL2014에서도 있음 )
n DMV를 사용하여 느리게 실행되는 쿼리 부분을 결정
n 타임스탬프 열을 사용하여 이 DMV를 다른 성능 카운터(예: 성능 모니터, xperf)와 조인
- UTF-8에 대한 지원
- 메모리 액세스에 최적화된 테이블에 대한 Transact-SQL 개선 사항
n UNIQUE 제약 조건 및 인덱스가 지원됩니다.
n 메모리 액세스에 최적화된 테이블 간의 FOREIGN KEY 참조가 지원
n 비고유 인덱스에서 해당 키에 NULL 값을 허용할 수 있음
n TRIGGER가 메모리 액세스에 최적화된 테이블에서 지원 ( insteadof 트리거는 지원되지 않음)
n 스키마 변경합니다(열 추가/삭제/변경, 제약 조건 추가/삭제).
- 프로시저 LOB를 허용
n 본 프로시저에서 문자열 함수(예: LTrim 또는 Substring)에 전달된 매개 변수 가능
- 통계의 업데이트에 대해 선형 폭이 강조되는 임계값
n 대형 테이블에서 통계의 자동 업데이트가 한층 더 강화되었습니다(호환성 수준 130). 대형 테이블의 경우 SQL Server 2016부터 통계 자동 업데이트를 트리거하는 임계값이 20%가 되어 임계값이 테이블에서 행이 증가한 수만큼 줄어든 상태로 시작됩니다(백분율로 표시). 임계값을 줄이기 위해 2371 추적 플래그를 설정하지 않아도 됩니다.
n 대형 테이블일 경우 20% 가 크게 느껴질 수 있는데 조정 가능 해서 성능 향상에 도움이 됨.
n Management Studio는 활성 쿼리의 활성 실행 계획을 보는 기능을 제공합니다. 이 활성 쿼리 계획을 통해 제어권이 한 쿼리 계획 연산자에서 다른 연산자로 흘러갈 때 쿼리 실행 프로세스를 실시간으로 파악할 수 있습니다.
- Monitoring Performance By Using the Query Store (https://msdn.microsoft.com/ko-kr/dn817826)
n 쿼리 저장소는 DBA에게 쿼리 계획 선택 및 성능에 대한 정보를 제공하는 새로운 기능입니다. 쿼리 계획 변경으로 인해 발생하는 성능 차이를 신속하게 찾을 수 있도록 하여 성능 문제 해결을 간소화합니다. 이 기능은 쿼리, 계획 및 런타임 통계의 기록을 자동으로 캡처하고 검토할 수 있도록 이 기록을 유지합니다.
- TempDB 데이터베이스
n Tempdb에 대한 추적 플래그 1117 및 1118이 필요하지 않습니다. Tempdb 데이터베이스가 여러 개 있을 경우 모든 파일은 증가 설정에 따라 동시에 크기가 증가
n 기본적으로 설치 시 CPU 개수 또는 8개 중 적은 수만큼 tempdb 파일이 추가
n Tempdb 데이터베이스 파일에 대해 여러 볼륨을 지정할 수 있습니다. 여러 디렉터리가 지정된 경우 tempdb 데이터 파일은 라운드 로빈 방식으로 여러 디렉터리에 분배됩니다.
- 기본 제공 JSON 지원
- PolyBase 제공 - Hadoop 또는 Azure Blob Storage에 저장된 데이터에 액세스하고 임시 방식으로 데이터를 쿼리할 수 있습니다
- Stretch Database -스트레치 데이터베이스는 기록 데이터를 Microsoft Azure 클라우드에 투명하고 안전하게 마이그레이션하는 SQL Server 2016의 새로운 기능입니다
- 이제 TRUNCATE TABLE 문은 지정된 파티션의 잘림을 허용합니다
- Azure SQL 데이터베이스 복제가 지원됨
- 향상된 고가용성 기능 – Always ON
n Always On 가용성 그룹은 Windows Server 2016에서 분산 트랜잭션 및 DTC를 지원
n 이제 데이터베이스가 오프라인으로 전환될 때 장애 조치(failover)하도록 Always On 가용성 그룹 을 구성할 수 있습니다.
n 이제 Always On은 암호화된 데이터베이스를 지원합니다
n 가용성 그룹의 동기화 처리량은 주 복제본에서 로그 블록의 병렬 및 빠른 압축, 최적화된 동기화 프로토콜, 보조 복제본에서 로그 레코드 다시 실행 및 병렬 압축 풀기를 통해 10배까지 증가되었습니다. 따라서 읽기 가능한 보조 복제본의 새로 고침이 증가되고 장애 조치(failover) 시 데이터베이스 복구 시간이 줄어듭니다.
'ETC' 카테고리의 다른 글
SQL Server 2012 Certification upgrade info (0) | 2015.05.20 |
---|---|
메모리 dump 분석 예 ( 정확하지 않음 ) (0) | 2014.11.06 |
Windbg 명령어 & 설치 (0) | 2014.11.06 |
Window 서비스 등록/삭제 방법 (0) | 2011.10.20 |