View a markdown version of this page

RDS for Microsoft SQL Server에서 추적 플래그 설정 - Amazon Relational Database Service

RDS for Microsoft SQL Server에서 추적 플래그 설정

SQL Server 추적 플래그는 데이터베이스 엔진의 동작 방식을 변경하기 위해 활성화하거나 비활성화할 수 있는 설정입니다. 추적 플래그를 사용하여 숨겨진 기능을 활성화하거나, 성능 문제를 해결하거나, 기본 서버 동작을 재정의할 수 있습니다. 실제로 각 추적 플래그는 SQL Server의 기본 동작을 변경하는 켜기/끄기 스위치 역할을 합니다.

Microsoft SQL Server에서 사용 가능한 추적 플래그의 전체 목록은 Microsoft 설명서의 DBCC TRACEON - Trace Flags를 참조하세요.

RDS for SQL Server는 관리형 서비스로서 글로벌 서버 수준의 설정을 제한합니다. RDS for SQL Server DB 파라미터 그룹을 통해 특정 추적 플래그만 시작 파라미터로 구성할 수 있습니다. 다음 표에는 RDS for SQL Server에서 지원하는 추적 플래그가 나열되어 있습니다.

중요

프로덕션 환경에서 추적 플래그를 활성화하기 전에 철저히 테스트하고 검증하는 것이 좋습니다. 추적 플래그는 성능 튜닝과 문제 해결에 유용하지만, 잘못 사용할 경우 시스템 불안정, 최적화되지 않은 쿼리 계획 또는 리소스 문제를 초래할 수 있습니다.

추적 플래그 설명

647

SQL Server 2012에서 도입된 데이터 유효성 검사를 건너뜁니다. 이 검사는 ALTER TABLE... ADD 열 작업의 실행 속도를 상당히 느리게 만들 수 있습니다.

652

스캔에 대한 페이지 미리 가져오기를 비활성화합니다. 이 플래그를 활성화하면 SQL Server가 버퍼 풀에 페이지를 미리 로드하는 것을 중지합니다. 이로 인해 미리 가져오기에 의존하는 쿼리의 성능이 저하될 수 있습니다.

692

힙 또는 클러스터형 인덱스에 데이터를 대량 로드할 때 빠른 삽입을 비활성화합니다(SQL Server 2016 이상에서 지원).

1204

교착 상태에 관여하는 리소스 및 잠금 유형과 영향을 받는 현재 명령을 반환합니다.

1211

메모리 부족이나 잠금 수에 따른 잠금 에스컬레이션을 비활성화합니다. SQL Server는 행 또는 페이지 잠금을 테이블 잠금으로 에스컬레이션하지 않습니다.

1222

교착 상태 정보를 XML 형식으로 반환합니다(1204의 향상된 버전).

1224

잠금 수에 따른 잠금 에스컬레이션을 비활성화합니다(메모리 부족으로 인한 잠금 에스컬레이션은 여전히 ​​발생할 수 있음).

1448

비동기 보조 복제본이 변경 사항을 승인할 때까지 기다리지 않고 복제 로그 리더가 작업을 진행할 수 있도록 합니다. 로그 리더는 SYNCHRONIZED 상태인 동기 보조 복제본에 대해서는 여전히 대기하며, 해당 복제본들의 최소 승인 로그 시퀀스 번호(LSN)를 초과하여 진행하지 않습니다.

2528

DBCC CHECKDB, DBCC CHECKFILEGROUP 및 DBCC CHECKTABLE에 의한 객체의 병렬 검사를 비활성화합니다.

3654

메모리 누수 또는 해제되지 않은 메모리 상태 문제를 해결하는 데 사용됩니다. 이 플래그가 활성화된 상태에서 이러한 문제가 감지되면 SQL Server는 어설션 실패를 트리거하고 미니 덤프를 생성합니다. 이때 덤프는 추적 플래그 자체가 아닌 향상된 추적에 의해 포착된 기본 메모리 오류로 인해 생성되는 것입니다.

4138

TOP, OPTION (FAST N), IN 또는 EXISTS를 사용하는 쿼리에 대해 행 목표 조정을 비활성화합니다. 이렇게 하면 SQL Server가 행 목표 최적화 없이 전체 계획을 생성하게 됩니다.

4139

선행 열이 오름차순인지, 내림차순인지, 고정인지에 관계없이 더 나은 카디널리티 추정을 위해 쿼리 컴파일 시 히스토그램을 조정합니다.

4199

이전에 여러 추적 플래그를 통해 도입된 쿼리 최적화 프로그램의 다양한 변경 사항을 제어합니다.

4616

서버 수준의 메타데이터를 애플리케이션 역할에서 볼 수 있도록 설정합니다.

6527

공통 언어 런타임(CLR) 통합에서 메모리 부족 예외가 처음 발생할 때 메모리 덤프가 생성되지 않도록 설정합니다.

7745

데이터베이스 종료 시 쿼리 스토어가 디스크로 데이터를 플러시하지 못하게 합니다.

8285

변경 데이터 캡처(CDC) 또는 읽기 커밋된 스냅샷 격리(RCSI)가 활성화된 데이터베이스에서 발생하는 어설션 오류(IndexRowScanner.cpp: m_versionStatus.IsVisible())를 수정합니다. 어설션을 제어된 오류 메시지[SQL Server 2022 누적 업데이트(CU) 6 이상]로 변환하거나 억제하여(SQL Server 2019) 스택 덤프를 방지합니다.

8780

최적화 프로그램이 더 나은 계획을 찾을 수 있도록 더 많은 시간을 부여합니다.

9432

SESSION_CONTEXT를 사용하는 병렬 실행 계획에서 잘못된 결과가 반환되는 오류를 해결한 SQL Server 2019 CU14의 수정 사항을 비활성화합니다. 세션이 재사용을 위해 재설정될 때 발생하는 액세스 위반 덤프를 방지하도록 추적 플래그 11042와 함께 사용됩니다.

9481

데이터베이스 호환성 수준과 관계없이 쿼리 최적화 프로그램이 레거시 카디널리티 추정 모델(SQL Server 2012 이하)을 사용하도록 강제합니다. 대안: 데이터베이스 수준에서는 ALTER DATABASE SCOPED CONFIGURATION을 사용하고, 쿼리 수준에서는 QUERYTRACEON 쿼리 힌트를 사용합니다.

9492

METADATA_SEQUENCE_GENERATOR에 대한 LATCH_EX 대기를 줄이기 위해, 인스턴스 수준에서 SELECT INTO(대량 삽입) 작업의 병렬 처리를 비활성화합니다. 성능이 약간 저하될 수 있지만 전반적인 안정성이 향상됩니다.

9592

동기식 가용성 그룹에 대한 로그 스트림 압축을 활성화합니다. 압축은 지연 시간을 늘리기 때문에 동기식 가용성 그룹에서는 로그 스트림 압축이 기본적으로 비활성화되어 있습니다. 이를 활성화하면 추가적인 CPU 사용과 약간의 지연 시간이 발생하는 대신 복제본 간의 네트워크 대역폭 사용량을 줄일 수 있습니다. SQL Server 2016(13.0) 이상에 적용됩니다.

11024

SQL Server 2017에서는 분할된 테이블에 대한 증분 통계의 자동 업데이트가 지연될 수 있습니다. 이는 개별 파티션 중 어느 것도 자체 임계값을 초과하지 않는 경우, 전체 수정 횟수가 루트 임계값을 초과하더라도 루트 노드의 수정 횟수가 0으로 재설정되기 때문에 발생합니다. 추적 플래그 11024는 루트 노드의 수정 횟수를 모든 파티션 수정 사항의 실제 합계로 유지하여 통계가 적시에 업데이트되도록 보장함으로써 이 문제를 해결합니다. SQL Server 2017 CU3 이상에 적용됩니다.

11042

SQL Server 2019 CU14에서는 SESSION_CONTEXT를 사용하는 병렬 실행 계획에서 발생하던 잘못된 결과 문제가 수정되었습니다. 그러나 이 수정 때문에 세션이 재사용을 위해 재설정될 때 액세스 위반 덤프가 생성될 수 있습니다. 해결 방법: 추적 플래그 11042(SESSION_CONTEXT에 대한 병렬 처리 비활성화)와 추적 플래그 9432(원래 CU14 수정 비활성화)를 모두 활성화합니다. 참고: 이는 최신 SQL Server 버전에 여전히 존재하는 알려진 문제입니다. Microsoft의 영구적인 수정은 향후 CU에서 제공될 예정입니다.

12502

온프레미스 SQL Server 인스턴스에 대한 외부 권한 부여 정책을 비활성화하여 긴 PREEMPTIVE_OS_QUERYREGISTRY 대기 문제를 해결합니다. SQL Server 2022 CU5 이상에 적용됩니다.

12618

자동 계획 수정(APC) 기능이 동일한 계획에 대해 여러 번의 연속적인 회귀 검사를 수행함으로써, 수정 여부를 결정하기 전에 더 많은 통계 정보를 수집할 수 있도록 합니다. SQL Server 2022 CU4 이상에 적용됩니다.

12656

자동 계획 수정(APC) 기능이 계획 변경을 감지한 후 회귀 검사를 실행하기 전에 5분의 지연 시간을 추가합니다. 이를 통해 빠르게 실행되는 쿼리로 인한 결과 왜곡을 방지하고, 변경의 영향을 받는 장기 실행 쿼리나 시간 초과가 발생하기 쉬운 쿼리까지 반영할 수 있습니다. SQL Server 2022 CU4 이상에 적용됩니다.

참고

SQL Server 2016 Service Pack 1(SP1) 이상에서는 추적 플래그 4138 및 4139 대신 쿼리 수준에서 USE HINT 쿼리 힌트를 사용하는 것이 좋습니다. 이 변경 사항을 프로덕션에 적용하기 전에 항상 철저히 테스트하세요.

중요

추적 플래그 7745를 사용하면 종료 시점에 플러시되지 않은 쿼리 스토어 데이터가 손실될 수 있습니다. SQL Server를 즉시 종료하려면 이 추적 플래그 대신 SHUTDOWN WITH NOWAIT를 사용합니다.