요약
이 업데이트는 향상 된 자격 증명 없이 쿼리 최적화 프로그램을 구동 하거나 sysadmin 서버 역할의 멤버가 없어도 새 쿼리 힌트 인수인 USE 힌트를 도입 합니다. 이 새 쿼리 힌트의 구문은 다음과 유사 합니다.
<query_hint > ::={USE HINT(N'key' [ [, ]...n ])}
이 업데이트에는 사용 힌트 인수와 함께 사용할 수 있는 다음 힌트 옵션도 있습니다.
방법을 |
등가 추적 플래그 |
설명 |
적용 대상 |
---|---|---|---|
ASSUME_JOIN_PREDICATE_DEPENDS_ON_FILTERS |
TF 9476 |
쿼리 최적화 프로그램에서 조인에 대 한 기본 기본 포함 가정 대신 간단한 제약 가정을 사용 하 여 SQL Server가 쿼리 계획을 생성 하도록 합니다. SQL Server 2014 (12 ~ x) 이상의 카디널리티 예상 모델 |
|
ASSUME_MIN_SELECTIVITY_FOR_FILTER_ESTIMATES |
TF 4137 |
SQL Server가 필터링을 예측 하는 경우 최소 선택도를 사용 하 여 계획을 생성 하 고 필터는 상관 관계를 고려 합니다. 이 힌트 이름은 다음과 같이 평행이 됩니다. sql server 2012 (11. x) 및 이전 버전의 카디널리티 예측 모델과 함께 사용할 경우 추적 플래그 4137를 사용 하 고 추적 플래그 9471이 sql server 2014 (12. x) 이상의 카디널리티 예측 모델과 함께 사용 되는 경우에도 비슷한 효과가 있습니다. |
|
DISABLE_BATCH_MODE_ADAPTIVE_JOINS |
일괄 처리 모드 적응형 조인을 사용할 수 없습니다. |
SQL Server 2017 시작 |
|
DISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACK |
일괄 처리 모드 메모리에 피드백을 부여 하지 않도록 설정 합니다. |
SQL Server 2017 시작 |
|
DISABLE_DEFERRED_COMPILATION_TV |
테이블 변수 지연 컴파일 사용 안 함 |
SQL Server 2019 시작 |
|
DISABLE_INTERLEAVED_EXECUTION_TVF |
여러 문 테이블 반환 함수에 대해 인터리브 실행을 사용 하지 않도록 설정 합니다. |
SQL Server 2017 시작 |
|
DISABLE_OPTIMIZED_NESTED_LOOP |
TF 2340 |
쿼리 계획을 생성할 때 최적화 된 중첩 루프 조인에 대해 정렬 작업 (일괄 처리 정렬)을 사용 하지 않도록 쿼리 프로세서에 지시 합니다. |
|
DISABLE_OPTIMIZER_ROWGOAL |
TF 4138 |
SQL Server가 다음 키워드를 포함 하는 쿼리를 사용 하 여 행 목표값을 수정 하지 않는 계획을 생성 하도록 합니다.
|
|
DISABLE_PARAMETER_SNIFFING |
TF 4136 |
하나 이상의 매개 변수를 사용 하 여 쿼리를 컴파일하는 동안 쿼리 최적화 프로그램에서 평균 데이터 배포를 사용 하도록 지시 합니다. 이 명령은 쿼리를 컴파일할 때 처음 사용 된 매개 변수 값에 대 한 쿼리 계획을 독립적으로 만듭니다. 이 힌트를 사용 하 여 데이터베이스 범위 구성 설정을 재정의 PARAMETER_SNIFFING = 해제. |
|
DISABLE_ROW_MODE_MEMORY_GRANT_FEEDBACK |
행 모드 메모리 허용 피드백을 사용 하지 않습니다. |
SQL Server 2019 시작 |
|
DISABLE_TSQL_SCALAR_UDF_INLINING |
스칼라 UDF 인라이닝을 사용 하지 않도록 설정 합니다. |
SQL Server 2019 시작 |
|
DISALLOW_BATCH_MODE |
일괄 처리 모드 실행을 비활성화 합니다. |
SQL Server 2019 시작 |
|
ENABLE_HIST_AMENDMENT_FOR_ASC_KEYS |
TF 4139 |
카디널리티 추정이 필요한 모든 선행 인덱스 열에 대해 자동으로 생성 된 빠른 통계 (히스토그램 수정)을 사용 하도록 설정 합니다. 카디널리티를 추정 하는 데 사용 되는 히스토그램은이 열의 실제 최대값 또는 최소값을 고려 하 여 쿼리 컴파일 타임에 조정 됩니다. |
|
ENABLE_QUERY_OPTIMIZER_HOTFIXES |
TF 4199 |
쿼리 최적화 프로그램 핫픽스 (SQL Server 누적 업데이트 및 서비스 팩에서 릴리스된 변경 내용)를 사용 하도록 설정 합니다. 이 힌트를 사용 하 여 재정의 데이터베이스 범위 구성 설정 QUERY_OPTIMIZER_HOTFIXES = 켜기. |
|
FORCE_DEFAULT_CARDINALITY_ESTIMATION |
TF 9481 |
쿼리 최적화 프로그램을 사용 하도록 강제 현재 데이터베이스 호환성 수준에 해당 하는 카디널리티 예측 모델입니다. 이 힌트를 사용 하 여 재정의데이터베이스 범위 구성 설정 LEGACY_CARDINALITY_ESTIMATION = ON. |
|
FORCE_LEGACY_CARDINALITY_ESTIMATION |
TF 9481 |
쿼리 최적화 프로그램을 사용 하도록 강제 SQL Server 2012 (11. x) 및 이전 버전의 카디널리티 예측 모델 이 힌트를 사용 하 여 LEGACY_CARDINALITY_ESTIMATION = ON 데이터베이스 범위 구성 설정 재정의. |
|
QUERY_OPTIMIZER_COMPATIBILITY_LEVEL_n |
쿼리 수준에서 쿼리 최적화 프로그램 동작을 강제로 수행 합니다. 데이터베이스 호환성 수준으로 쿼리를 컴파일한 것 처럼이 동작이 발생 합니다. n, 여기서 n 은 지원 되는 데이터베이스 호환성 수준입니다. 참조 하세요현재 n 에 대해 지원 되는 값 목록은 sys.dm_exec_valid_use_hints. |
SQL Server 2017 (14.x) CU10에서 시작 |
자세한 내용은 힌트 (transact-sql) 쿼리를 참조 하세요.
추가 정보
이 업데이트는 SQL Server 2016 서비스 팩 1 에 포함 되어 있습니다.
각각의 SQL Server 2016에 대 한 새 빌드에는 이전 빌드에 포함 된 모든 핫픽스와 모든 보안 수정 사항이 포함 되어 있습니다. SQL Server 2016에 대 한 최신 빌드를 설치 하는 것이 좋습니다.
SQL Server 쿼리 최적화 프로그램 (QO) 동작을 힌트 해야 하는 시나리오는 매우 일반적 이며, 전통적으로 몇 가지 (문서화 및 문서화 되지 않은) 추적 플래그를 사용 하 여 처리 됩니다. 그러나 추적 플래그가 전역적으로 설정 되 면 다른 작업에 좋지 않은 영향을 미칠 수 있습니다. 또한, 세션 별로 사용 하도록 설정 하는 것은 기존 응용 프로그램에서는 실용적이 지 않으며, OPTION QUERYTRACEON 옵션 을 사용 하 여 쿼리 별로 활성화 하면 sysadmin 고정 서버 역할의 구성원 자격이 필요 합니다. (계획 지침 또는 저장 프로시저를 사용 하 여이 문제를 해결할 수 있지만, 관리자 권한으로도 계속 필요 합니다.) 추적 플래그는 특정 서버 특성을 일시적으로 설정 하거나 특정 동작을 해제 하는 데 사용 되며, 관리 하 고 이해 하기 어려울 수 있습니다. 추적 플래그에 대 한 자세한 내용은 MSDN (Microsoft Developer Network) 웹 사이트의 SQL (추적 플래그) 항목을 참조 하세요.
참조
Microsoft에서 소프트웨어 업데이트를 설명 하는 데 사용 하는 용어 에 대해 알아봅니다.