이 문서에서는 SQL Server 2017 및 SQL Server 2016에 사용할 수 있는 성능 향상 및 구성 옵션 목록을 설명합니다.
원래 제품 버전: SQL Server 2017, SQL Server 2016
원래 KB 번호: 4465518
소개
이 문서에서는 다양한 제품 업데이트 및 구성 옵션을 통해 Microsoft SQL Server 2017 및 SQL Server 2016에 사용할 수 있는 성능 향상 및 변경 사항을 설명합니다.
SQL Server 인스턴스의 성능을 향상시키기 위해 이러한 업데이트를 적용하는 것이 좋습니다. 개선 수준은 워크로드 패턴, 경합 지점, 프로세서 레이아웃(프로세서 그룹 수, 소켓 수, NUMA 노드 수 및 NUMA 노드당 코어 수) 및 시스템에서 사용 가능한 메모리 양을 비롯한 다양한 요인에 따라 달라집니다.
SQL Server 지원 팀은 이러한 업데이트 및 구성 변경을 사용하여 여러 NUMA 노드와 많은 프로세서가 포함된 하드웨어 시스템을 사용하는 고객 워크로드에 대해 적절한 수준의 성능 향상을 달성했습니다. 지원 팀은 앞으로도 이 문서를 지속적으로 업데이트할 예정입니다.
정의: 하이엔드 시스템
"하이 엔드 시스템"에는 일반적으로 여러 소켓, 소켓당 8개 이상의 코어, 반테라바이트 이상의 메모리가 있습니다.
권장 업데이트 적용 및 SQL Server 성능 향상
SQL Server 2017 및 SQL Server 2016의 성능을 개선하기 위한 이러한 권장 사항은 다음과 같이 5개의 테이블로 그룹화됩니다.
- 표 1에는 고사양 시스템의 확장성을 위해 가장 자주 권장되는 업데이트 및 추적 플래그가 포함되어 있습니다.
- 표 2에는 기타 성능 튜닝 관련 권장 사항 및 지침이 포함되어 있습니다.
- 표 3 에는 SQL 2017 및 2016의 동작 및 기본 설정 변경에 대한 정보가 포함되어 있습니다.
- 표 4 에는 CU(누적 업데이트)와 함께 포함된 다른 확장성 수정 사항이 포함되어 있습니다.
- 표 5 에는 Linux 환경에 배포된 SQL Server 인스턴스에 대한 권장 수정 사항 및 구성 지침이 포함되어 있습니다.
참고
추가 정보는 사용량이 많은 SQL Server를 조정하기 위해 자주 사용하는 노브를 참조하세요.
중요합니다
추적 플래그를 사용하도록 설정한 경우 SQL Server 2017 또는 SQL Server 2016으로 마이그레이션을 실행한 후 해당 문서의 정보를 검토해야 합니다. 이 문서에 나열된 많은 추적 플래그 및 구성 옵션은 SQL Server 2017 및 SQL Server 2016의 기본 옵션이 되었습니다.
표 1. 고급 시스템의 중요한 업데이트 및 추적 플래그
다음 표를 검토하고 SQL Server 인스턴스가 Applicable version and build ranges 열의 요구 사항을 충족하는지 확인한 후 Trace flag 열에서 추적 플래그를 사용하도록 설정합니다.
참고
- 적용 가능한 버전 및 빌드 는 변경 또는 추적 플래그가 도입된 특정 업데이트를 나타냅니다. CU를 지정하지 않으면 SP의 모든 CU가 포함됩니다.
- 해당 없음 버전 및 빌드는 변경 또는 추적 플래그가 기본 동작이 된 특정 업데이트를 나타냅니다. 따라서 해당 업데이트를 적용하는 것만으로도 혜택을 받을 수 있습니다.
중요합니다
Always On 환경에서 추적 플래그가 있는 수정을 사용하도록 설정하는 경우 가용성 그룹의 일부인 모든 복제본에서 수정 및 추적 플래그를 사용하도록 설정해야 합니다.
| 고려해야 할 시나리오 및 증상 | 추적 플래그 | 적용 가능한 버전 및 빌드 범위 | 적용되지 않는 버전 및 빌드 범위 | 자세한 내용은 기술 자료 또는 블로그 링크를 참조하세요 |
|---|---|---|---|---|
| 많은 SOS_CACHESTORE 스핀 잠금 경합 또는 계획이 임시 쿼리 워크로드에서 자주 제거됩니다. | T174 | SQL Server 2016 RTM부터 현재 SP/CU까지 SQL Server 2017 RTM부터 현재 SP/CU까지 | 없음 | KB3026083 - 수정: 임시 SQL Server 계획 캐시에서 SOS_CACHESTORE 스핀 잠금 경합으로 인해 SQL Server에서 높은 CPU 사용량이 발생합니다. |
| 계획 캐시의 항목은 다른 캐시 또는 메모리 클럭의 증가로 인해 제거됩니다. 쿼리를 자주 다시 컴파일하기 때문에 CPU 사용량이 높습니다. | T8032 | SQL Server 2016 RTM에서 현재 SP/CU SQL Server 2017 RTM에서 현재 SP/CU로 | 없음 | DBCC TRACEON - 추적 플래그 문서 (Transact-SQL). Plan Cache Internals의 캐시 크기 관리 섹션을 참조하세요. |
| tempdb는 많이 사용되며 tempdb의 데이터가 자주 수정됩니다. tempdb 데이터베이스에 대해 간접 체크포인트를 사용할 때 비양보 스케줄러 메시지가 발생합니다. | T3468 | SQL Server 2016 SP1 CU5부터 현재 SP/CU까지 SQL Server 2017 CU1부터 현재 SP/CU까지 | 없음 | 간접 체크포인트 및 tempdb - 좋은 점, 나쁜 점 그리고 non-yielding schedulerKB4040276 - FIX: tempdb 데이터베이스의 간접 체크포인트는 SQL Server 2016 및 2017에서 "non-yielding scheduler" 오류를 발생시킵니다. |
| tempdb에서 빈번하게 짧은 트랜잭션이 발생합니다. 이러한 트랜잭션에 대한 CPU 사용량이 증가했음을 알 수 있습니다. Common Criteria Compliance가 활성화되어 있지 않습니다. | T3427 | SQL Server 2016 SP1 CU2에서 SQL Server 2016 SP2 CU2로 | SQL Server 2017 RTM | KB3216543 - 수정: SQL Server 2016 및 2017에서 많은 빈번하고 짧은 트랜잭션을 활용하는 워크로드는 SQL Server 2014보다 더 많은 CPU를 사용할 수 있습니다. |
| 특정 쿼리 성능 문제를 해결하고 있습니다. 최적화 프로그램 수정 사항은 기본적으로 사용하지 않도록 설정됩니다. |
T4199 | SQL Server 2016 RTM~현재 SP/CU, SQL Server 2017 RTM~현재 SP/CU | 없음 |
KB974006 - SQL Server 쿼리 최적화 프로그램 핫픽스 추적 플래그 4199 서비스 모델 참고 서버 수준 추적 플래그 4199 대신 데이터베이스 범위 옵션 QUERY_OPTIMIZER_HOTFIXES 또는 쿼리 힌트 ENABLE_QUERY_OPTIMIZER_HOTFIXES를 사용하는 것이 좋습니다. |
| 통계 작업을 완료하는 데 시간이 오래 걸립니다. 여러 통계 업데이트 작업을 병렬로 실행할 수 없습니다. | T7471 | SQL Server 2016 RTM CU1~현재 SP/CU, SQL Server 2017 RTM~현재 SP/CU | 없음 |
KB3156157 - 단일 테이블에서 여러 통계에 대해 여러 UPDATE STATISTICS를 동시에 실행할 수 있습니다. SQL 2014 및 SQL 2016을 사용하여 업데이트 통계 성능 향상 |
표 2. SQL Server 인스턴스의 성능 향상을 위한 일반적인 고려 사항 및 모범 사례
기술 자료 문서 또는 온라인 리소스 열의 내용을 검토하고 권장 작업 열의 지침 구현을 고려하세요.
| 기술 자료 문서 또는 Books Online 리소스 | 권장 조치 |
|---|---|
| 최대 병렬 처리 수준 서버 구성 옵션 설정 | 기술 자료 문서에 따라 SQL Server 인스턴스의 최대 병렬 처리 수준 서버 구성 옵션을 변경하려면 sp_configure 저장 프로시저를 사용합니다. |
| 에디션별 컴퓨팅 용량 제한 SQL Server 2012에 대한 라이선스 코어 제한 | 서버/CAL(클라이언트 액세스 라이선스) 라이선스 방식의 Enterprise Edition은 SQL Server 인스턴스당 20코어로 제한됩니다. 코어 기반 서버 라이선스 모델에서는 제한이 없습니다. 모든 하드웨어 리소스를 사용할 수 있도록 SQL Server 에디션을 적합한 SKU로 업그레이드하는 것이 좋습니다. |
| 균형 조정 전원 관리 옵션을 사용하는 경우 Windows Server의 성능 저하 | 문서를 검토하고 Windows 관리자와 협력하여 문서의 해결 섹션에 나열된 솔루션 중 하나를 구현합니다. |
|
ad hoc 워크로드에 대한 최적화 서버 구성 옵션 FORCED PARAMETERIZATION |
계획 캐시의 항목은 다른 캐시 또는 메모리 관리자의 증가로 인해 제거됩니다. 캐시가 최대 항목 수에 도달하면 계획 캐시 제거가 발생할 수도 있습니다. 위에서 설명한 추적 플래그 8032 외에도 optimize for ad hoc workloads 서버 옵션과 FORCED PARAMETERIZATION 데이터베이스 옵션도 고려합니다. |
|
SQL Server에서 버퍼 풀 메모리의 페이징을 줄이는 방법 SQL Server 2012 이상 버전의 메모리 구성 및 크기 조정 고려 사항 |
SQL 서비스 시작 계정에 메모리의 페이지 잠금 옵션(Windows) 사용자 권한을 할당합니다. 최대 서버 메모리를 총 실제 메모리의 약 90%로 설정합니다. 서버 메모리 구성 옵션 설정이 선호도 마스크 설정을 사용하도록 구성된 노드의 메모리만 고려하는지 확인합니다. |
| SQL Server 및 Large Pages 설명... | 특히 분석 또는 데이터 웨어하우징 워크로드의 경우 메모리가 많은 서버가 있는 경우 추적 플래그 834를 사용하도록 설정하는 것이 좋습니다. SQL Server의 대형 페이지 메모리 모델과 Columnstore 인덱스의 상호 운용성을 유념해야 합니다. |
|
대규모 보안 캐시와 관련된 쿼리 성능 문제 SQL Server에서 TokenAndPermUserStore 캐시의 크기가 커지면 쿼리 실행을 완료하는 데 시간이 더 오래 걸립니다. DBCC TRACEON - 추적 플래그(Transact-SQL) |
보안 캐시가 큰 크기로 증가하고 성능 문제 및 스핀 잠금 경합이 발생하는 경우 추적 플래그 T4610 및 T4618 을 사용하도록 설정하여 TokenAndPermuserStore의 최대 크기를 줄이는 것이 좋습니다. |
| ALTER WORKLOAD GROUPKB3107401 - SQL Server 2012에서 새로 제공되는 쿼리 메모리 부여 옵션(min_grant_percent 및 max_grant_percent)을 사용할 수 있습니다. | 대용량 메모리 할당을 소모하는 쿼리가 많은 경우 리소스 관리자 구성의 기본 워크로드 그룹에 대한 request_max_memory_grant_percent 값을 기본값인 25%에서 더 낮은 값으로 줄이십시오. SQL Server에서 새 쿼리 메모리 부여 옵션을 사용할 수 있습니다(min_grant_percent 및 max_grant_percent). |
| SQL 2016 - 더 빠르게 실행: 자동 TEMPDB 구성 | 업그레이드된 서버인 경우 tempdb 데이터베이스에 대해 크기가 같은 여러 데이터 파일을 추가합니다. 새 설치의 경우 설치 프로그램에서 자동으로 이 작업을 수행합니다. |
| TEMPDB - 파일 및 추적 플래그 및 업데이트 | tempdb 최적화를 사용하고 임시 개체에서 DDL을 방지하거나 줄여 확장성을 향상시킵니다. |
| 인스턴트 파일 초기화 | Windows 관리자와 협력하여 SQL Server 서비스 계정에 Books Online 항목의 정보에 따라 볼륨 유지 관리 작업 수행 사용자 권한을 부여합니다. |
| SQL Server의 "자동 증가" 및 "자동 축소" 설정에 대한 고려 사항 | 데이터베이스의 현재 설정을 확인하고 기술 자료 문서의 권장 사항에 따라 구성되었는지 확인합니다. |
| 간접 검사점 | SQL Server 2014 및 2012에서 I/O 동작을 최적화하기 위해 사용자 데이터베이스에서 간접 검사점을 사용하도록 설정하는 것이 좋습니다. |
| SQL Server: 대형 RAM 및 DB 체크포인팅 | SQL Server 2014 및 2012에서 I/O 동작을 최적화하기 위해 사용자 데이터베이스에서 간접 검사점을 사용하도록 설정하는 것이 좋습니다. 참조 간접 검사점 및 tempdb - 좋은 점, 나쁜 점, 그리고 non-yielding scheduler에서 tempdb에 필요한 조정을 검토하세요. |
| KB3009974 - 수정: 디스크에 SQL Server AG 및 Logshipping 환경의 주 복제본 및 보조 복제본 로그 파일에 대한 섹터 크기가 서로 다른 경우 동기화 속도가 느려집니다. | 주 복제본의 트랜잭션 로그가 512 바이트 섹터 크기의 디스크에 있고 보조 복제본 트랜잭션 로그가 4K 섹터 크기의 드라이브에 있는 가용성 그룹이 있는 경우 동기화 속도가 느려질 수 있습니다. 이 경우 TF 1800을 사용하도록 설정하면 문제가 해결됩니다. 자세한 내용은 Trace Flag 1800을 참조하세요. |
|
쿼리 프로파일링 인프라 KB3170113 -SQL Server 2014 SP2의 실행 계획 XML 및 확장 이벤트에서 연산자별 쿼리 실행 통계를 노출하도록 업데이트 |
SQL Server가 아직 CPU 바인딩되지 않았고 워크로드에 대해 1.5%에서 2%의 오버헤드가 무시할 수 있는 경우 TF 7412를 시작 시 추적 플래그로 사용하도록 설정하는 것이 좋습니다. 이 플래그는 SQL Server 2014 SP2 이상에서 경량 프로파일링을 사용하도록 설정합니다. 이렇게 하면 프로덕션 환경에서 실시간 쿼리 문제 해결을 수행할 수 있습니다. |
| 쿼리 저장소를 사용하여 계획 선택 회귀 식별최적의 쿼리 계획 활성화 | 쿼리 저장소 기능을 사용하여 성능이 저하되었거나 제대로 수행되지 않는 쿼리를 식별합니다. 카디널리티 추정으로 인해 쿼리 성능 문제가 발생하는 경우 적절한 CE 버전을 선택합니다. 데이터베이스 범위 옵션 LEGACY_CARDINALITY_ESTIMATION, 쿼리 힌트 LEGACY_CARDINALITY_ESTIMATION, 데이터베이스 호환성 수준 또는 추적 플래그 9481. |
| 새 카디널리티 추정기에서 조인 포함 가정은 쿼리 성능을 저하합니다. | 조인 및 필터를 사용하는 쿼리를 평가하여 단순 및 기본 포함 관계의 효과를 이해합니다. 기본 카디널리티 추정기를 사용하는 경우 기본 포함 관계 대신 단순 포함에 추적 플래그 9476을 사용합니다. |
| 호환성 수준 130의 개선 사항호환성 수준 140의 개선 사항 | 데이터베이스 호환성 수준 130 이상을 사용하여 다음과 같은 개선 사항을 활용할 수 있습니다. 데이터베이스 호환성 수준 140 이상을 사용하여 다음 개선 사항을 활용할 수 있습니다. |
| 쿼리 저장소에 대한 모범 사례 | 캡처 모드를 자동으로 설정 추적 플래그 7745 및 7752를 사용하도록 설정하여 고가용성 및 재해 복구 시나리오에서 쿼리 저장소 성능을 향상시킵니다. 과도한 워크로드에서 쿼리 저장소 스핀 잠금 경합이 발생하는 경우 KB4340759 - FIX: 쿼리 저장소가 사용하도록 설정된 경우 SQL Server 2016의 성능 저하의 수정을 적용하십시오. |
| SQL Server 2016/2017: 가용성 그룹 보조 복제본 redo 모델 및 성능 | 너무 많은 대기(PARALLEL_REDO_TRAN_TURN, DPT_ENTRY_LOCK, 또는 DIRTY_PAGE_TABLE_LOCK)가 발생하는 경우 이 블로그를 검토하고 시정 조치를 취하세요(해당 수정 사항 적용, redo 모델의 적절한 사용 평가). |
|
KB2634571 - DBCC CHECKDB 명령에 대한 개선으로 PHYSICAL_ONLY 옵션을 사용할 때 더 빠른 성능을 얻을 수 있습니다. DBCC TRACEON - 추적 플래그 더 빠른 CHECKDB - 파트 IV(SQL CLR UDT) |
큰 데이터베이스(여러 TB 크기)에서 DBCC CHECK 명령을 실행하는 경우 추적 플래그 T2562, T2549 및 T2566을 사용하는 것이 좋습니다. 이제 몇 가지 검사가 SQL Server 2016의 EXTENDED_LOGICAL_CHECK 옵션 아래에 위치합니다. |
| Spectre 및 Meltdown 사이드 채널 취약성 공격으로부터 SQL Server를 보호 | 사용자 환경의 다양한 SQL Server 워크로드에서 KVAS(커널 가상 주소 섀도닝), KPTI(커널 페이지 테이블 간접 참조) 및 IBP(간접 분기 예측 완화)의 성능을 신중하게 평가하세요. |
표 3. SQL Server 2017 및 SQL Server 2016에 도입된 중요한 변경 내용
SQL Server 2017 및 SQL Server 2016에는 확장성 및 성능 영역에서 몇 가지 개선 사항이 포함되어 있습니다. SQL Server 2014 및 SQL Server 2012에 필요한 다양한 구성 변경 및 추적 플래그가 SQL Server 2017 및 2016의 기본 동작이 되었습니다. 이 표에서는 SQL Server 2017 및 SQL Server 2016에서 구현된 모든 변경 내용에 대한 개요를 제공합니다.
| 영역 | 변경 내용 요약 | 자세한 내용 및 참조 |
|---|---|---|
| SQL 엔진 | SQL Server 2016 이상 버전에서 사용 중지되거나 더 이상 필요하지 않은 자주 사용되는 추적 플래그: 8048, 8079, 9024, 1236, 1118, 1117, 6498, 8075, 3449, 6532, 6533, 6534 | SQL Server 추적 플래그 |
| 데이터베이스 엔진 | 데이터베이스 엔진 새로운 기능 - SQL Server 2017 | |
| 데이터베이스 엔진 | SQL Server 2016 데이터베이스 엔진 기능의 호환성이 손상되는 변경 사항 | |
| 데이터베이스 엔진 | SQL Server 2017의 데이터베이스 엔진 기능에 대한 주요 변경 내용 | |
| 쿼리 처리 데이터 형식 변환 | SQL Server 2016(13.x)에서는 일부 데이터 형식 변환 및 일부(주로 드문) 작업이 개선되었습니다. | 자세한 내용은 일부 데이터 형식 및 일반적이지 않은 작업 처리 시 SQL Server 2016의 향상된 기능을 참조하세요. |
| 가용성 그룹 | 보조 데이터베이스의 경우 초기화 자동 시드는 데이터베이스 미러링 엔드포인트를 사용하여 데이터베이스 콘텐츠를 보조 데이터베이스로 스트리밍하고 이를 적용합니다. | SQLSweet16!, 에피소드 2: 가용성 그룹 자동 시드 |
| 가용성 그룹 | SQL Server 2016은 로그 블록을 기본에서 보조로 전송할 때 더 적은 컨텍스트 스위치를 사용합니다. | SQL 2016 - 더 빠르게 실행: Always On 로그 전송 시 컨텍스트 전환 감소SQL Server 2016 - 더 빠르게 실행: Always On 가용성 그룹 성능 향상 |
| 가용성 그룹 | SQL Server 2016은 향상된 압축 알고리즘과 로그 블록 데이터의 병렬 압축을 사용합니다. | SQL 2016 - 그냥 더 빠르게 실행됩니다: Always On 병렬 압축/향상된 알고리즘 |
| 가용성 그룹 | SQL Server 2016은 AES-NI 암호화 기능을 지원하는 하드웨어를 활용하여 Always On 로그 전달 확장성 및 성능을 상당한 수준으로 개선합니다. | SQL 2016 - 더 빠르게 실행 - Always On AES-NI 암호화 |
| 성능 | SQL Server 2016은 AVX 또는 SSE용 CPU 기능을 감지하고 하드웨어 기반 벡터 기능을 사용하여 columnstore 데이터를 압축하고 사전을 빌드하며 처리할 때 확장성 및 성능을 향상시킵니다. | SQL 2016 - 더 빠르게 실행됩니다. 열 저장소는 벡터 명령(SSE/AVX)을 사용합니다. |
| 성능 | SQL Server 2016은 CPU 벡터 지침을 활용하여 대량 삽입 성능을 향상시킵니다. | SQL 2016 - 더 빠르게 실행됨 - BULK INSERT는 벡터 명령(SSE/AVX)을 사용합니다. |
| 성능 | SQL Server 2016에서는 INSERT...SELECT 문이 병렬 처리를 사용하여 실행될 수 있으므로 데이터 로드 시간이 크게 줄어듭니다. | SQLSweet16!, 에피소드 3: 병렬 INSERT ... SELECT |
| 성능 | SQL Server 2016을 사용하면 오래된 파티션을 보관하기 위해 테이블의 개별 파티션에서 TRUNCATE 작업을 수행할 수 있습니다. | SQLSweet16!, 에피소드 5: 선택한 파티션 TRUNCATE |
| 성능 | SQL Server 2016은 필요에 따라 메모리 내 최적화 데이터베이스 작업자 풀의 크기를 동적으로 조정합니다. | SQL 2016 - 그냥 더 빠르게 실행됩니다: 메모리 내 최적화 데이터베이스 작업자 풀 |
| Tempdb | tempdb 및 사용자 데이터베이스의 할당은 균일한 전체 익스텐트를 사용합니다. tempdb의 파일 증가는 모든 파일에 대해 동시에 발생합니다. | SQL 2016 - 그냥 더 빠르게 실행: TEMPDB 및 사용자 데이터베이스에 대한 -T1117 및 -T1118 변경 내용 |
| Tempdb | 데이터베이스 엔진 설정은 tempdb 데이터 파일 수를 자동으로 계산합니다. | SQL 2016 - 더 빠르게 실행: 자동 TEMPDB 구성 |
| 스토리지 | 데이터베이스 엔진은 트랜잭션 로그 파일 초기화에 0x00 대신 0xC0 스탬프를 사용합니다. | SQL 2016 - 더 빠르게 실행됩니다: LDF 스탬프됨 |
| 스토리지 | 대규모 메모리 서버 및 쓰기가 많은 환경의 경우 간접 체크포인트가 더 잘 수행됩니다. | SQL 2016 - 그냥 더 빠르게 실행됩니다: 간접 검사점 기본값 |
| 스토리지 | 높은 트랜잭션 처리량은 여러 로그 작성기가 로그 캐시를 트랜잭션 로그로 플러시하는 이점을 활용할 수 있습니다. | SQL 2016 - 더 빠르게 실행됩니다. 여러 로그 기록기 작업자 |
| 백업 및 복원 | MAXTRANSFERSIZE를 65536보다 크게 지정하는 경우 TDE를 사용하여 암호화된 데이터베이스에 대해 백업을 압축할 수 있습니다. | SQLSweet16!, 에피소드 1: TDE 사용 데이터베이스에 대한 백업 압축 |
| SQL 운영 체제 | 메모리 개체 경합을 줄이기 위해 메모리 개체를 동적으로 분할합니다. | SQL 2016 - 더 빠르게 실행됩니다. 동적 메모리 개체(CMemThread) 분할 |
| SQL 운영 체제 | SQL Server 2016은 모든 작업자가 공정한 대우를 받고 확장성을 개선할 수 있도록 작업자의 퀀텀 사용 패턴을 모니터링합니다. | SQL 2016 - 더 빠르게 실행됨: 업데이트된 스케줄링 알고리즘 |
| SQL 운영 체제 | SQL Server 2016은 하드웨어 레이아웃을 확인하고 NUMA 노드당 8개 이상의 CPU를 보고하는 시스템에서 소프트 NUMA를 자동으로 구성합니다. 분할은 확장성 및 성능 향상을 위해 데이터베이스 엔진 전체에서 다양한 조정을 트리거합니다. | SQL 2016 - 더 빠르게 실행되는 이유: 자동 소프트 NUMA |
| DBCC CHECK (데이터베이스 일관성 검사) | DBCC CHECK 명령에서 사용하는 리소스를 관리하려면 MAXDOP를 지정합니다. | SQLSweet16!, 에피소드 6: MAXDOP를 사용하는 DBCC CHECKDB |
| DBCC CHECK (데이터베이스 일관성 검사) | DBCC CHECK는 경합이 적고 고급 미리 읽기 기능이 있는 향상된 페이지 스캔 알고리즘을 사용합니다. | SQL 2016 - 더 빠르게 실행됩니다. DBCC 확장성이 7배 더 향상되었습니다. |
| DBCC CHECK (데이터베이스 일관성 검사) | DBCC CHECK 명령은 SQL Server가 특수 데이터 형식 및 인덱스를 평가하는 데 시간이 오래 소요됩니다. 이러한 검사는 EXTENDED_LOGICAL_CHECKS 옵션 아래로 이동했습니다. | SQL 2016 - 더 빠르게 실행됩니다. DBCC 확장 검사 |
| 코드 페이지 | SQL Server의 테이블에 UTF-8 데이터를 로드하도록 BULK INSERT 또는 bcp 유틸리티가 향상되었습니다. | SQLSweet16!, 에피소드 10: "유리를 먹을 수 있지만 ..., 데이터베이스에 로드할 수 있을까요?" |
| 공간 | SQL Server 2016은 많은 공간 메서드의 T-SQL 실행 중 PInvoke 및 PUnInvoke 작업을 제거합니다. | SQL 2016 - 더 빠르게 실행되는 이유: 네이티브 공간 구현 |
| 공간 | SQL Server 2016은 기본 제공 공간 유효성 검사를 사용하여 공간 데이터를 사용하는 TVP의 확장성을 개선합니다. | SQL 2016 - 그냥 더 빠르게 실행됩니다: 공간 열이 있는 TVP |
| 공간 | 네이티브 및 TVP 공간 개선을 통해 SQL Server는 공간 데이터의 인덱스 생성 및 공간 분할을 최적화할 수 있습니다. | SQL 2016 - 더 빠른 실행: 공간 인덱스 생성 속도 향상 |
| MSDTC | SQL Server 2016은 필요할 때 MSDTC를 동적으로 시작하므로, 그 전까지는 리소스를 다른 작업에 활용할 수 있습니다. | SQL 2016 - 온디맨드 MSDTC 시작을 활용 |
| XEvent | 이벤트의 빠른 렌더링을 위해 컨텍스트 전환, 메모리 할당 및 기타 측면을 줄이도록 XEvent Linq 공급자 논리에 여러 변경 사항이 적용되었습니다. | SQL 2016 - 그냥 더 빠르게 실행됩니다: XEvent Linq Reader |
표 4. CU에 포함된 중요한 수정 사항
증상 열의 설명을 검토하고 해당되는 환경에 필수 업데이트 열의 필요한 업데이트(가능하면 특정 수정 사항이 포함된 최신 업데이트)를 적용합니다. 기술 자료 문서를 검토하여 해당 문제에 대한 자세한 내용을 확인할 수 있습니다. 이러한 권장 사항에서는 이 문서 또는 이 표에서 명시적으로 언급된 경우를 제외하고는 다른 추적 플래그를 시작 매개변수로 설정할 필요가 없습니다. 이러한 수정 사항을 포함하는 최신 CU 또는 서비스 팩을 적용하는 것만으로도 이점을 얻을 수 있습니다.
참고필수 업데이트 열의 CU 이름은 이 문제를 해결하는 SQL Server의 첫 번째 CU를 제공합니다. 누적 업데이트에는 이전 SQL Server 업데이트 릴리스와 함께 포함된 모든 핫픽스 및 모든 업데이트가 포함됩니다. SQL Server 증분 서비스 모델 업데이트에 언급된 대로, 설명된 문제를 해결하거나 방지하기 위해 최신 누적 업데이트를 지속적이고 선제적인 주기로 설치하는 것이 좋습니다. 또한 SQL Server 2017부터 SQL Server용 최신 서비스 모델이 도입되어 서비스 팩을 더 이상 사용할 수 없게 되었습니다.
| 적용 가능한 버전 | 영역 또는 구성 요소 | 해결된 문제에 대한 설명 | 권장 업데이트 |
|---|---|---|---|
| SQL Server 2016, SQL Server 2017 | 백업 및 복원 | 기본값이 아닌 MAXTRANSFERSIZE를 사용하는 경우 과거에 DEK를 암호화하는 데 사용된 이전 인증서 복사본을 찾으면 TDE 사용 데이터베이스의 로그 백업이 실패하고 오류 33111이 간헐적으로 반환됩니다. |
해결 방법: SQL Server에서 TDE 암호화 데이터베이스를 백업할 때 오류 33111 및 3013 SQL Server 2017 누적 업데이트 2 SQL Server 2016 SP1용 누적 업데이트 6 SQL Server 2016의 누적 업데이트 9 |
| SQL Server 2016, SQL Server 2017 | 백업 및 복원 | SQL Server에서 TDE 압축 백업에 대한 RESTORE HEADERONLY 문이 느리게 완료됨 |
수정: SQL Server에서 완료가 느린 TDE 압축 백업에 대해 RESTORE HEADERONLY 문 복원 SQL Server 2017용 누적 업데이트 8 SQL Server 2016 SP2용 누적 업데이트 1 |
| SQL Server 2016 | 백업 및 복원 | TDE 사용 데이터베이스에서 INIT 및 COMPRESSION 옵션을 사용하는 경우 백업 파일을 압축하지 못 함 |
해결 방법: SQL Server 2016의 TDE 지원 데이터베이스에서 INIT 및 COMPRESSION 옵션을 사용하는 경우 백업 파일을 압축하지 못 함 SQL Server 2016 RTM용 누적 업데이트 7 SQL Server 2016 SP1용 CU 4 |
| SQL Server 2016 | 백업 및 복원 | SQL Server에서 대용량 TDE로 암호화된 데이터베이스를 백업할 때 어설션 실패 | SQL Server 2016 SP1용 누적 업데이트 4 |
| SQL Server 2016 | 백업 및 복원 | TDE가 설정된 데이터베이스에서 압축 및 체크섬을 사용하여 백업을 수행하면 복원이 실패합니다. |
수정: SQL Server 2016에서 TDE 사용 데이터베이스에서 압축 및 체크섬을 사용하여 백업을 수행할 때 발생하는 복원 실패 문제 수정 SQL Server 2016 RTM용 누적 업데이트 7 SQL Server 2016 SP1용 누적 업데이트 4 |
| SQL Server 2016 | 백업 및 복원 | SQL Server의 대규모 TDE 암호화 데이터베이스에 대해 여러 파일에서 압축된 백업을 복원하려고 할 때 오류 9004 |
해결 방법: 대규모 TDE 암호화된 항목의 여러 파일에서 압축된 백업을 복원하려고 할 때 오류 9004 SQL Server 2016 RTM용 누적 업데이트 7 |
| SQL Server 2016, SQL Server 2017 | 백업 및 복원 | SQL Server의 4K 섹터에서 압축을 사용하여 백업을 복원할 때 복원 성능 저하 |
KB4088193 - 수정: SQL Server에서 4K 섹터 크기의 디스크에서 압축된 백업을 복원할 때 복원 성능 저하 SQL Server 2016 SP1용 누적 업데이트 9 SQL Server 2016 SP2용 누적 업데이트 1 SQL Server 2017용 누적 업데이트 7 |
| SQL Server 2016, SQL Server 2017 | 백업 및 복원 [VDI] | VDI 클라이언트를 사용할 때 TDE로 압축된 백업 복원 실패 | SQL Server 2017용 누적 업데이트 7 SQL Server 2016 SP2용 누적 업데이트 1 SQL Server 2016 SP1용 누적 업데이트 9 |
| SQL Server 2016, SQL Server 2017 | 백업 및 복원 [VDI] | VDI 인터페이스를 통해 백업 압축된 TDE 사용 데이터베이스 복원이 실패하고 OS 오류 38을 반환합니다. | SQL Server 2017용 누적 업데이트 8 [VSTS 버그 # 10936552] SQL Server 2016 SP2 RTM [VSTS 버그 # 10698847] |
| SQL Server 2016, SQL Server 2017 | 백업 및 복원 [VSS] | SQL Server에서 VSS 기반 애플리케이션을 통한 가용성 데이터베이스 백업이 실패할 수 있음 |
해결 방법: SQL Server에서 VSS 기반 애플리케이션을 통한 가용성 데이터베이스 백업이 실패할 수 있음 SQL Server 2017용 누적 업데이트 1 SQL Server 2016 RTM용 누적 업데이트 9 SQL Server 2016 SP1용 누적 업데이트 5 SQL Server 2014 SP2용 누적 업데이트 8 |
| SQL Server 2016, SQL Server 2017 | 백업 및 복원 | 암호화 키가 SQL Server의 EKM 공급자에 저장된 경우 TDE 사용 백업 및 복원 속도가 느립니다. |
암호화 키가 EKM에 저장된 경우 TDE 사용 백업 및 복원 속도가 느림 SQL Server 2017용 누적 업데이트 8 SQL Server 2016 서비스 팩 2용 누적 업데이트 1 SQL Server 2016 서비스 팩 1용 누적 업데이트 9 |
| SQL Server 2016, SQL Server 2017 | Always On AGColumnstore | 비클러스터형 인덱스 검색을 사용하여 데이터를 검색하는 쿼리는 더 오래 걸립니다. |
수정: 비클러스터형 인덱스 검색을 사용하는 데이터 검색 쿼리는 SQL Server에서 훨씬 더 오래 걸립니다. SQL Server 2017 누적 업데이트 2 SQL Server 2016 서비스 팩 1용 누적 업데이트 6 SQL Server 2016의 누적 업데이트 9 |
| SQL Server 2016, SQL Server 2017 | Always On AG | 힙 테이블을 포함하는 가용성 그룹의 보조 복제본에서 병렬 다시 실행을 수행하면 런타임 어설션 덤프가 생성되거나 SQL Server를 실행하는 서버가 충돌하고 액세스 위반 오류를 반환합니다. |
수정: 힙 테이블을 포함하는 가용성 그룹의 보조 복제본에서 병렬 다시 실행은 런타임 어설션 덤프를 생성하거나 SQL Server가 액세스 위반 오류와 충돌합니다. SQL Server 2016 SP1용 누적 업데이트 9 SQL Server 2016 SP2용 누적 업데이트 1 SQL Server 2017 누적 업데이트 6 |
| SQL Server 2016 | Always On AG | SQL Server Always On 가용성 그룹의 보조 복제본에서 병렬 재실행을 사용할 때 어설션이 발생합니다. |
수정: SQL Server Always On 가용성 그룹의 보조 복제본에서 병렬 redo를 사용할 때 어설션이 발생합니다. SQL Server 2016의 누적 업데이트 3 |
| SQL Server 2016, SQL Server 2017 | Always On AG | 읽기 쿼리를 처리할 때 Always On AG의 성능이 저하됩니다. |
수정: SQL Server에서 읽기 쿼리를 처리할 때 Always On AG 속도가 느림 SQL Server 2017용 누적 업데이트 8 SQL Server 2016 SP2용 누적 업데이트 1 SQL Server 2016 SP1용 누적 업데이트 9 |
| SQL Server 2017 | Always On AG | SQL Server on Linux의 가용성 그룹에 대한 장애 조치(failover) 기간을 줄이기 위한 개선 사항 |
SQL Server on Linux의 가용성 그룹에 대한 장애 조치(failover) 기간을 줄이기 위한 개선 사항 SQL Server 2017용 누적 업데이트 8 |
| SQL Server 2017 | Always On AG | SQL Server의 Pacemaker 클러스터에서 Always On 가용성 그룹에 대한 향상된 기능 |
SQL Server의 Pacemaker 클러스터에서 Always On 가용성 그룹에 대한 개선 사항 SQL Server 2017용 누적 업데이트 8 |
| SQL Server 2016 | 메모리 | 병렬 다시 실행으로 인해 메모리 사용량이 높아집니다 |
수정: 병렬 redo는 SQL Server 2014 또는 이전 버전과 비교할 때 SQL Server 2016에서 높은 메모리 사용량을 발생시킵니다. SQL Server 2016 SP1용 누적 업데이트 3 |
| SQL Server 2016, SQL Server 2017 | 메모리 | sp_execute_external_script 및 DMV sys.dm_exec_cached_plans는 메모리 누수를 유발함 |
수정: SQL Server 2017 및 2016에서 시스템 저장 프로시저 sp_execute_external_script 및 DMV sys.dm_exec_cached_plans 메모리 누수 발생 문제 수정 SQL Server 2017용 누적 업데이트 4 SQL Server 2016 SP1용 누적 업데이트 8 |
| SQL Server 2016, SQL Server 2017 | 메모리 | SQL Server 프로세스의 가상 주소 공간이 부족할 때 메모리 부족 오류 |
SQL Server에서 SQL Server 프로세스의 가상 주소 공간이 부족할 때 발생하는 메모리 부족 오류 SQL Server 2017용 누적 업데이트 4 SQL Server 2016 SP1용 누적 업데이트 8 |
| SQL Server 2016 | 메모리 | SQL Server에서 Azure Storage를 사용할 때 메모리 누수 발생 |
SQL Server 2014 또는 2016에서 Azure Storage를 사용할 때 메모리 누수 발생 SQL Server 2016 RTM용 누적 업데이트 5 SQL Server 2016 SP1용 누적 업데이트 2 SQL Server 2016용 누적 업데이트 2 |
| SQL Server 2016, SQL Server 2017 | 메모리 내 OLTP | 메모리 내 최적화 파일 그룹에 대해 디스크 체크포인트 사용량이 큽니다. |
해결 방법: In-Memory가 아닌 워크로드가 많은 동안 메모리 내 최적화 파일 그룹에 대해 큰 디스크 체크포인트 사용량이 발생합니다. SQL Server 2017 누적 업데이트 6 SQL Server 2016 SP1용 누적 업데이트 8 SQL Server 2016의 누적 업데이트 1 |
| SQL Server 2016 | 메모리 내 OLTP | 메모리 최적화 테이블에 데이터를 삽입할 때 검사점 파일이 과도하게 증가합니다. |
해결 방법: SQL Server 2016에서 메모리 최적화 테이블에 데이터를 삽입하면 검사점 파일이 과도하게 증가합니다. SQL Server 2016 SP1용 누적 업데이트 2 SQL Server 2016용 누적 업데이트 4 |
| SQL Server 2016, SQL Server 2017 | 메모리 내 OLTP | 메모리 최적화 테이블이 포함된 경우 데이터베이스 복구에 오랜 시간이 걸립니다. |
SQL Server 2017 및 2016에서 메모리 최적화 테이블이 있는 데이터베이스를 복구하는 데 시간이 오래 걸립니다. SQL Server 2017용 누적 업데이트 4 SQL Server 2016 SP1용 누적 업데이트 7 |
| SQL Server 2016, SQL Server 2017 | tempdb | PFS 페이지 라운드 로빈 알고리즘 개선 |
SQL Server 2016의 PFS 페이지 라운드 로빈 알고리즘 개선 SQL Server 2017용 누적 업데이트 7 SQL Server 2016 SP2용 누적 업데이트 1 SQL Server 2016 SP1용 누적 업데이트 9 |
| SQL Server 2016, SQL Server 2017 | tempdb | 성능 문제는 TempDB(sys.sysobjvalues 및 sys.sysseobjvalues)에서 PAGELATCH_EX 및 PAGELATCH_SH 대기 형식으로 발생합니다. |
성능 문제는 PAGELATCH_EX 및 PAGELATCH_SH 대기 형식으로 발생합니다. SQL Server 2016 서비스 팩 2용 누적 업데이트 1 SQL Server 2016 서비스 팩 1용 누적 업데이트 9 |
| SQL Server 2016, SQL Server 2017 | tempdb | 심한 tempdb 경합 명명된 제약 조건이 있는 Temp 테이블 변경에는 임시 테이블의 동기 삭제가 필요합니다. |
SQL Server 2016 또는 2017에서 tempdb 경합이 심합니다. SQL Server 2017용 누적 업데이트 5 SQL Server 2016 SP1용 누적 업데이트 8 |
| SQL Server 2017 | tempdb | 임시 개체를 제거할 때 경합 PAGELATCH_EX(sys.sysobjvalues) |
해결 방법: SQL Server에서 임시 개체를 제거할 때 경합 PAGELATCH_EX SQL Server 2017용 누적 업데이트 5 |
| SQL Server 2016 | tempdb | sys.sysobjvalues에서 PAGELATCH_EX 경합 증가 |
수정: SQL Server 2016에서 sys.sysobjvalues의 PAGELATCH_EX 경합 증가 SQL Server 2016 RTM용 누적 업데이트 6 SQL Server 2016 서비스 팩 1용 누적 업데이트 2 |
| SQL Server 2016, SQL Server 2017 | tempdb | tempdb 데이터베이스의 간접 검사점으로 인해 "Non-yielding scheduler" 오류가 발생합니다. |
해결 방법: tempdb 데이터베이스의 간접 검사점으로 인해 SQL Server 2017 및 2016에서 "Non-yielding scheduler" 오류가 발생합니다. SQL Server 2017용 누적 업데이트 1 SQL Server 2016 서비스 팩 1용 누적 업데이트 5 SQL Server 2016용 누적 업데이트 8 |
| SQL Server 2016, SQL Server 2017 | tempdb | 빈번하고 짧은 트랜잭션을 많이 사용하는 워크로드는 더 많은 CPU를 사용할 수 있습니다. |
SQL Server 2017 및 2016에서 빈번하고 짧은 트랜잭션을 많이 활용하는 워크로드는 SQL Server 2014보다 더 많은 CPU를 사용할 수 있습니다. SQL Server 2017용 누적 업데이트 4 SQL Server 2016 SP1용 누적 업데이트 2 |
| SQL Server 2016, SQL Server 2017 | 트랜잭션 로그 | 중요한 로그 증가를 위한 충분한 디스크 공간이 없는 경우 오류 9002 |
KB4087406 - 수정: SQL Server 2014, 2016 및 2017에서 중요한 로그 증가를 위한 충분한 디스크 공간이 없는 경우 오류 9002가 발생하는 문제 SQL Server 2017용 누적 업데이트 5 SQL Server 2016 SP2용 누적 업데이트 1 SQL Server 2016 SP1용 누적 업데이트 8 SQL Server 2014 SP2용 누적 업데이트 11 |
| SQL Server 2016 | 보안 캐시 | 높은 CPU 사용량으로 인한 성능 문제 및 SQL Server 2016의 SECURITY_CACHE 및 CMED_HASH_SET에 대한 높은 스핀 잠금 경합 SQLSweet16!, 에피소드 8: SQL Server 2016 누적 업데이트 2(CU2)가 높은 동시성 워크로드의 성능을 향상시킬 수 있는 방법 |
KB3195888 - 수정: CPU 사용량이 높으면 SQL Server 2016 및 2017에서 성능 문제가 발생합니다. SQL Server 2016용 누적 업데이트 2 |
| SQL Server 2017 | 쿼리 저장소 | 쿼리 저장소 런타임 통계를 수집할 때 액세스 위반이 발생합니다. |
SQL Server 2017의 쿼리 저장소에서 런타임 통계를 수집할 때 액세스 위반 SQL Server 2017용 누적 업데이트 5 |
| SQL Server 2016 | 쿼리 저장소 | Enterprise 및 Developer 에디션이 아닌 에디션에서 쿼리 저장소 자동 데이터 정리가 실패함 |
SQL Server 2016 Enterprise 및 Developer 버전 이외의 버전에서 쿼리 저장소 자동 데이터 정리가 실패함 SQL Server 2016의 누적 업데이트 1 |
| SQL Server 2016 | 쿼리 저장소 | 쿼리 저장소 사용하도록 설정된 경우 SQL Server의 성능 저하 |
KB4340759 - 수정: 쿼리 저장소 사용하도록 설정된 경우 SQL Server 2016의 성능 저하 SQL Server 2016 SP2용 누적 업데이트 2 |
표 5: Linux 환경에서 SQL Server에 대한 권장 개선 사항, 수정 및 구성 지침
이 표는 SQL Server 2017이 릴리스된 후 누적 업데이트에서 릴리스된 모든 주요 개선 사항, 권장 사항 및 코드 변경 내용을 컴파일한 것입니다. Symptoms 열의 설명을 검토하고, 해당 환경에서 Required update 열의 필요한 업데이트(가능하면 해당 특정 수정 사항이 포함된 최신 업데이트)를 적용합니다. 나열된 기술 자료 문서를 검토하여 해당 문제에 대한 자세한 내용을 확인할 수 있습니다.
이러한 권장 사항은 문서 또는 이 표에서 명시적으로 설명되지 않는 한 다른 추적 플래그를 시작 매개 변수로 사용하도록 설정할 필요가 없습니다. 이러한 수정 사항을 포함하는 최신 누적 업데이트 또는 서비스 팩을 적용하는 것만으로도 이점을 얻을 수 있습니다. SQL Server on Linux에서 Always On 가용성 그룹을 사용하는 경우 이 업데이트에서 몇 가지 개선 사항이 제공되었으므로 SQL Server 2017을 누적 업데이트 8 이상으로 업그레이드하세요. 참고필수 업데이트 열의 CU 이름은 이 문제를 해결하는 SQL Server의 첫 번째 누적 업데이트를 나타냅니다. 누적 업데이트에는 이전 SQL Server 업데이트 릴리스에 포함된 모든 핫픽스 및 모든 업데이트가 포함됩니다. SQL Server 증분 서비스 모델에 대한 업데이트에서 언급했듯이, 이제 설명된 문제를 해결하거나 방지하기 위해 지속적으로 사전 예방하는 방식으로 최신 누적 업데이트를 설치하는 것이 좋습니다. 또한 SQL Server 2017부터 Modern Servicing Model for SQL Server가 도입되어 서비스 팩이 더 이상 제공되지 않습니다.
| 변경 또는 개선 요약 | 자세한 내용 및 참조 |
|---|---|
| SQL 및 OS: Linux에서 SQL Server를 배포할 때 OS 및 SQL Server에 대한 다양한 모범 사례 권장 사항을 검토하세요 | Linux의 SQL Server에 대한 성능 모범 사례 및 구성 지침 |
| SQL 에이전트 개선: SQL Server 에이전트 작업은 모든 데이터베이스가 복구될 때까지 기다리지 않고 시작할 수 있습니다. |
SQL Server 에이전트 작업은 Linux용 SQL Server 2017에서 모든 데이터베이스가 복구될 때까지 기다리지 않고 시작할 수 있습니다. SQL Server 2017용 누적 업데이트 9 |
| 스토리지 개선: SQL Server 2017에서 "강제 플러시" 메커니즘 활성화 |
Linux의 SQL Server 2017에서 강제 플러시 메커니즘 활성화 SQL Server 2017 누적 업데이트 6 |
| 스토리지 개선: 마스터 데이터베이스 및 오류 로그 파일을 다른 위치로 이동 |
KB4053439 - 개선 사항: Linux의 SQL Server 2017에서 마스터 데이터베이스 및 오류 로그 파일을 다른 위치로 이동 SQL Server 2017용 누적 업데이트 4 |
| AG 개선 사항: SQL Server의 Pacemaker 클러스터에서 Always On 가용성 그룹에 대한 개선 사항 |
KB4339875 - SQL Server의 Pacemaker 클러스터에서 Always On 가용성 그룹에 대한 개선 사항 SQL Server 2017용 누적 업데이트 8 |
| 메모리 개선: SQL Server 설치 또는 시작을 위한 최소 메모리 제한은 2GB로 설정됨. |
KB4052969 - 수정: SQL Server 2017을 설치하거나 시작하기 위한 최소 메모리 제한이 2GB로 설정됨 SQL Server 2017 누적 업데이트 2 |
| 메모리 수정: TF 834를 사용하도록 설정한 후 메모리 증가 단계가 너무 깁니다. |
KB4075203 - 수정: Linux의 SQL Server 2017에서 TF 834를 사용하도록 설정한 후 메모리 증가 단계가 너무 깁니다. SQL Server 2017용 누적 업데이트 4 |
| 스케줄링 FIX: SQL Server 2017의 Windows 및 Linux 스케줄러 매핑 간에 이식성과 성능이 다릅니다. |
KB4043455 - 수정: SQL Server 2017의 Windows 및 Linux 스케줄러 매핑 간에 이식성과 성능이 다릅니다. SQL Server 2017용 누적 업데이트 1 |
| AD Auth 수정: 부모 도메인에 속한 사용자를 기반으로 로그인 계정을 생성할 수 없습니다. |
KB4073670 - 수정: Linux의 SQL Server 2017에서 부모 도메인에 속한 사용자를 기반으로 로그인을 만들 수 없습니다. SQL Server 2017용 누적 업데이트 4 |
| AD Auth 업데이트: 지리적으로 광범위한 네트워크에서 통신 가능한 KDC를 제한하여 SQL Server 성능 향상 |
KB4463314 - 업데이트는 지리적으로 큰 네트워크에서 연결할 수 있는 KDC를 제한하여 SQL 서버 성능을 향상시킵니다. SQL Server 2017용 누적 업데이트 11 |
| AD 인증 수정: 타사 Active Directory 공급자를 사용할 때 SQL Server가 충돌합니다. |
KB4466962 - 수정: 타사 Active Directory 공급자를 사용할 때 SQL Server 2017이 충돌합니다. SQL Server 2017용 누적 업데이트 12 |
| TSQL 수정: SQL Server를 다시 시작한 후 NEWSEQUENTIALID 함수가 중복 GUID를 생성합니다. |
KB4078097 - 수정: LINux에서 SQL Server 2017을 다시 시작한 후 NEWSEQUENTIALID 함수가 중복 GUID를 생성합니다. SQL Server 2017의 누적 업데이트 4 |
| 연결 수정 TCP 프로토콜 연결을 사용할 때 예기치 않은 메모리 사용 |
KB4073045 - 수정: Linux의 SQL Server 2017에서 TCP 프로토콜 연결이 사용될 때 예기치 않은 메모리 사용량 증가 SQL Server 2017용 누적 업데이트 4 |
| 연결 수정: 시작 시 IPv6을 사용하지 않도록 설정하면 이름 확인 오류가 발생합니다. |
KB4053392 - 수정: Linux의 SQL Server 2017 시작 시 IPv6을 사용하지 않도록 설정하면 이름 확인 오류가 발생합니다. SQL Server 2017 누적 업데이트 2 |
| 연결 수정: SQL Server는 mssql-conf 스크립트로 지정된 기본이 아닌 IP 주소에서 수신 대기하지 않습니다. |
KB4053393 - 수정: Linux의 SQL Server 2017에서 mssql-conf 스크립트로 지정된 기본이 아닌 IP 주소에서 수신 대기하지 않음 SQL Server 2017 누적 업데이트 2 |
| 설정 수정: CU를 적용할 때 스크립트 업그레이드 실패 |
SQL Server 2017 CU4 이상으로 업그레이드할 때 Linux에서 SQL 에이전트를 사용하도록 설정하지 않으면 발생하는 오류 SQL Server 2017 누적 업데이트 6 |
| 데이터베이스 메일 수정: 기본이 아닌 TCP 포트를 사용하는 경우 데이터베이스 메일이 SQL Server에 연결할 수 없습니다. |
KB4100873 - 수정: 기본이 아닌 TCP 포트를 사용하는 경우 데이터베이스 메일이 Linux의 SQL Server 2017에 연결할 수 없습니다. SQL Server 2017 누적 업데이트 6 |
| 컨테이너 수정됨: "docker stop" 명령을 사용해 SQL Server Linux Docker 컨테이너를 중지할 수 없음 |
KB4093805 - 수정: "docker stop" 명령을 사용하여 SQL Server Linux Docker 컨테이너를 중지할 수 없습니다. SQL Server 2017용 누적 업데이트 5 |
| 컨테이너 수정됨: Linux Docker 컨테이너에서 SQL Server를 실행할 때 메모리 부족 오류 |
KB4347055 - 수정: Linux Docker 컨테이너에서 SQL Server 2017을 실행할 때 메모리 부족 오류 SQL Server 2017의 누적 업데이트 10 |
| AG: Pacemaker 패키지 1.1.18-11.el7 이상을 사용하는 경우 start-failure-is-fatal 속성을 조정하십시오. |
KB4229789 - SQL Server 2017용 누적 업데이트 7 Pacemaker 알림 섹션 참조 |
| AG 수정: 작업 시간이 초과되면 Pacemaker가 리소스 에이전트 프로세스를 종료할 수 있습니다. |
KB4460203 - 수정: SQL Server 2017 Always On 가용성 그룹에서 작업 시간이 초과되면 Pacemaker가 리소스 에이전트 프로세스를 종료할 수 있음 SQL Server 2017용 누적 업데이트 11 |
| AG 해결: 두 SQL Server 인스턴스가 가용성 그룹의 주 복제본으로 표시되는 문제 |
KB4316791 - 수정: 두 개의 SQL Server 인스턴스가 SQL Server에서 가용성 그룹의 주 복제본인 문제 SQL Server 2017용 누적 업데이트 8 |
| AG 수정: Always On 가용성 그룹을 사용할 때 불필요한 장애 조치(failover)가 발생함 |
KB4056922 - 수정: Linux의 SQL Server 2017에서 Always On 가용성 그룹을 사용하는 경우 불필요한 장애 조치(failover)가 발생하는 문제 SQL Server 2017용 누적 업데이트 3 |
| AG 수정: Pacemaker는 Always On AG의 기존 주 복제본을 강등한 후 새 복제본을 승격하지 않는 문제 |
KB4076982 - 수정: Pacemaker는 Linux의 SQL Server 2017에서 Always On AG의 기존 주 복제본을 강등하고 새 복제본을 승격하지 않습니다. SQL Server 2017의 누적 업데이트 4 |
| AG 수정: Pacemaker는 Always On AG를 사용할 때 동기화되지 않은 복제본을 주 복제본으로 승격합니다. |
KB4091722 - 수정: Linux의 SQL Server 2017에서 Always On AG를 사용하는 경우 Pacemaker는 동기화되지 않은 복제본을 주 복제본으로 승격합니다. SQL Server 2017용 누적 업데이트 5 |
| AG 수정: Always On AG를 사용할 때 Pacemaker의 로컬 복제본을 주 복제본으로 승격이 실패함 |
KB4230542 - 수정: SQL Server 2017에서 Always On AG를 사용할 때 로컬 복제본을 주 복제본으로 승격하지 못함 SQL Server 2017용 누적 업데이트 7 |
| AG 수정: 가용성 그룹에 속한 데이터베이스를 시작할 때 시간 초과가 발생합니다. |
KB4316790 - 수정: Linux의 SQL Server에서 가용성 그룹에 속한 데이터베이스를 시작하는 중 시간 초과가 발생합니다. SQL Server 2017용 누적 업데이트 8 |
| AG 수정: Pacemaker에서 SQL Server 장애 조치(failover) 클러스터 인스턴스 또는 Always On AG를 관리할 때 불필요한 장애 조치(failover)가 발생합니다. |
KB4316793 - 수정: Pacemaker에서 SQL Server 2017 장애 조치(failover) 클러스터 인스턴스 또는 Always On AG를 관리할 때 불필요한 장애 조치(failover)가 발생합니다. SQL Server 2017용 누적 업데이트 8 |