ALTER DATABASE SCOPED CONFIGURATION(Transact-SQL)
적용 대상: SQL Server 2016 (13.x) 이상 Azure SQL 데이터베이스 Azure SQL Managed Instance Azure Synapse Analytics
이 명령은 개별 데이터베이스 수준에서 여러 데이터베이스 구성 설정을 사용하도록 설정합니다.
중요
다양한 DATABASE SCOPED CONFIGURATION
옵션이 다양한 버전의 SQL Server 또는 Azure 서비스에서 지원됩니다. 이 페이지에서는 모든 DATABASE SCOPED CONFIGURATION
옵션을 설명합니다. 해당하는 경우 버전이 적어 집니다. 사용 중인 서비스 버전에서 사용할 수 있는 구문을 사용해야 합니다.
다음 설정은 Azure SQL Database, Azure SQL Managed Instance 및 SQL Server에서 지원됩니다(인수 섹션의 각 설정에 대한 적용 대상 줄로 표시됨).
- 프로시저 캐시를 지웁니다.
- MAXDOP 매개 변수를 해당 특정 워크로드에 가장 적합한 기본 데이터베이스에 대한 권장 값(1,2, ...)으로 설정하고 보고 쿼리에 사용되는 보조 복제본 데이터베이스에 대해 다른 값을 설정합니다. MAXDOP를 선택하는 방법에 대한 지침은 최대 병렬 처리 수준 서버 구성 옵션 구성을 검토하세요.
- 데이터베이스와 관계없이 쿼리 최적화 프로그램 카디널리티 추정 모델을 호환성 수준으로 설정합니다.
- 데이터베이스 수준에서 매개 변수 스니핑을 사용하거나 사용하지 않도록 설정합니다.
- 데이터베이스 수준에서 쿼리 최적화 프로그램 핫픽스를 사용하거나 사용하지 않도록 설정합니다.
- 데이터베이스 수준에서 ID 캐시를 사용하거나 사용하지 않도록 설정합니다.
- 일괄 처리가 처음으로 컴파일될 때 캐시에 저장될 컴파일된 계획 스텁을 사용하거나 사용하지 않도록 설정합니다.
- 기본적으로 컴파일된 Transact-SQL 모듈에 대한 실행 통계의 수집을 사용하거나 사용하지 않도록 설정합니다.
ONLINE =
구문을 지원하는 DDL 문에 기본적으로 온라인 옵션을 활성화 또는 비활성화합니다.RESUMABLE =
구문을 지원하는 DDL 문에 기본적으로 다시 시작 가능 옵션을 활성화 또는 비활성화합니다.- 지능형 쿼리 처리 기능을 활성화하거나 비활성화합니다.
- 가속 계획 강제를 활성화하거나 비활성화합니다.
- 전역 임시 테이블의 자동 드롭 기능을 사용하거나 사용하지 않도록 설정합니다.
- 간단한 쿼리 프로파일링 인프라를 활성화하거나 비활성화합니다.
- 새
String or binary data would be truncated
오류 메시지를 활성화하거나 비활성화합니다. - sys.dm_exec_query_plan_stats에서 마지막 실제 실행 계획의 수집을 활성화하거나 비활성화합니다.
- 일시 중지된 다시 시작 가능한 인덱스 작업이 일시 중지된 후 데이터베이스 엔진 의해 자동으로 중단되는 시간(분)을 지정합니다.
- 비동기 통계 업데이트를 위한 낮은 우선 순위의 잠금 대기를 사용하거나 사용하지 않도록 설정합니다.
- Azure Blob Storage에 원장 다이제스트 업로드를 사용하거나 사용하지 않도록 설정합니다.
이 설정은 Azure Synapse Analytics에서만 사용할 수 있습니다.
- 사용자 데이터베이스의 호환성 수준 설정
Syntax
-- Syntax for SQL Server, Azure SQL Database and Azure SQL Managed Instance
ALTER DATABASE SCOPED CONFIGURATION
{
{ [ FOR SECONDARY] SET <set_options>}
}
| CLEAR PROCEDURE_CACHE [plan_handle]
| SET < set_options >
[;]
< set_options > ::=
{
MAXDOP = { <value> | PRIMARY}
| LEGACY_CARDINALITY_ESTIMATION = { ON | OFF | PRIMARY}
| PARAMETER_SNIFFING = { ON | OFF | PRIMARY}
| QUERY_OPTIMIZER_HOTFIXES = { ON | OFF | PRIMARY}
| IDENTITY_CACHE = { ON | OFF }
| INTERLEAVED_EXECUTION_TVF = { ON | OFF }
| BATCH_MODE_MEMORY_GRANT_FEEDBACK = { ON | OFF }
| BATCH_MODE_ADAPTIVE_JOINS = { ON | OFF }
| TSQL_SCALAR_UDF_INLINING = { ON | OFF }
| ELEVATE_ONLINE = { OFF | WHEN_SUPPORTED | FAIL_UNSUPPORTED }
| ELEVATE_RESUMABLE = { OFF | WHEN_SUPPORTED | FAIL_UNSUPPORTED }
| OPTIMIZE_FOR_AD_HOC_WORKLOADS = { ON | OFF }
| XTP_PROCEDURE_EXECUTION_STATISTICS = { ON | OFF }
| XTP_QUERY_EXECUTION_STATISTICS = { ON | OFF }
| ROW_MODE_MEMORY_GRANT_FEEDBACK = { ON | OFF }
| MEMORY_GRANT_FEEDBACK_PERCENTILE_GRANT = { ON | OFF }
| MEMORY_GRANT_FEEDBACK_PERSISTENCE = { ON | OFF }
| BATCH_MODE_ON_ROWSTORE = { ON | OFF }
| DEFERRED_COMPILATION_TV = { ON | OFF }
| ACCELERATED_PLAN_FORCING = { ON | OFF }
| GLOBAL_TEMPORARY_TABLE_AUTO_DROP = { ON | OFF }
| LIGHTWEIGHT_QUERY_PROFILING = { ON | OFF }
| VERBOSE_TRUNCATION_WARNINGS = { ON | OFF }
| LAST_QUERY_PLAN_STATS = { ON | OFF }
| PAUSED_RESUMABLE_INDEX_ABORT_DURATION_MINUTES = <time>
| ISOLATE_SECURITY_POLICY_CARDINALITY = { ON | OFF }
| EXEC_QUERY_STATS_FOR_SCALAR_FUNCTIONS = { ON | OFF }
| ASYNC_STATS_UPDATE_WAIT_AT_LOW_PRIORITY = { ON | OFF }
| OPTIMIZED_PLAN_FORCING = { ON | OFF }
| DOP_FEEDBACK = { ON | OFF }
| CE_FEEDBACK = { ON | OFF }
| PARAMETER_SENSITIVE_PLAN_OPTIMIZATION = { ON | OFF }
| LEDGER_DIGEST_STORAGE_ENDPOINT = { <endpoint URL string> | OFF }
| OPTIMIZED_SP_EXECUTESQL = { ON | OFF }
}
중요
SQL Server 2019 (15.x)부터 Azure SQL Database 및 Azure SQL Managed Instance에서 일부 옵션 이름이 변경되었습니다.
DISABLE_INTERLEAVED_EXECUTION_TVF
가INTERLEAVED_EXECUTION_TVF
로 변경됨DISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACK
가BATCH_MODE_MEMORY_GRANT_FEEDBACK
로 변경됨DISABLE_BATCH_MODE_ADAPTIVE_JOINS
가BATCH_MODE_ADAPTIVE_JOINS
로 변경됨
-- Syntax for Azure Synapse Analytics
ALTER DATABASE SCOPED CONFIGURATION
{
SET <set_options>
}
[;]
< set_options > ::=
{
DW_COMPATIBILITY_LEVEL = { AUTO | 10 | 20 | 30 | 40 | 50 | 9000 }
}
인수
보조용
보조 데이터베이스에 대한 설정을 지정합니다(모든 보조 데이터베이스가 동일한 값을 가져야 함).
CLEAR PROCEDURE_CACHE [plan_handle]
데이터베이스에 대한 프로시저(플랜) 캐시를 지우고 기본 및 보조에서 둘 다 실행할 수 있습니다.
쿼리 계획 핸들을 지정하여 계획 캐시에서 단일 쿼리 계획을 지웁니다.
적용 대상: 쿼리 계획 핸들 지정은 Azure SQL Database 및 Azure SQL Managed Instance에서 SQL Server 2019(15.x)부터 사용할 수 있습니다.
MAXDOP = {<value> | PRIMARY }
<value>
문에 사용해야 하는 기본 max degree of parallelism (MAXDOP) 설정을 지정합니다. 0은 기본값이며 서버 구성이 대신 사용됨을 나타냅니다. 데이터베이스 범위의 MAXDOP는 서버 수준에서 sp_configure
설정된 최대 병렬 처리 수준을 0으로 설정하지 않는 한 재정의합니다. 쿼리 힌트는 다른 설정을 필요로 하는 특정 쿼리를 조정하기 위해 데이터베이스 범위 MAXDOP를 여전히 재정의할 수 있습니다. 이러한 모든 설정은 작업 그룹에 대해 설정된 MAXDOP로 제한됩니다.
MAXDOP 옵션을 사용하여 병렬 계획 실행에 사용되도록 프로세서 수를 제한할 수 있습니다. SQL Server는 쿼리에 대한 병렬 실행 계획, 인덱스 DDL(데이터 정의 언어) 작업, 병렬 삽입, 온라인 열 변경, 병렬 통계 수집 및 정적 커서와 키 집합 커서 채우기를 고려합니다.
참고
MAXDOP(최대 병렬 처리 수준) 제한은 태스크별로 설정됩니다. 요청별 또는 쿼리 제한별로 수행되지 않습니다. 즉, 병렬 쿼리 실행 중에 단일 요청은 스케줄러에 할당되는 여러 작업을 생성할 수 있습니다. 자세한 내용은 스레드 및 태스크 아키텍처 가이드를 참조하세요.
인스턴스 수준에서 이 옵션을 설정하려면 max degree of parallelism 서버 구성 옵션 구성을 참조하세요.
참고
Azure SQL Database에서 새로운 단일 탄력적 풀 데이터베이스의 MAXDOP 데이터베이스 범위 구성은 기본적으로 8로 설정됩니다. 현재 문서에 설명된 대로 각 데이터베이스에 대해 MAXDOP를 구성할 수 있습니다. MAXDOP를 최적으로 구성하는 방법에 대한 권장 사항은 추가 리소스 섹션을 참조하세요.
팁
쿼리 수준에서 이 작업을 수행하려면 MAXDOP 쿼리 힌트를 사용합니다.
서버 수준에서 이 작업을 수행하려면 MAXDOP(최대 병렬 처리 수준) 서버 구성 옵션을 사용합니다.
워크로드 수준에서 이 작업을 수행하려면 MAX_DOP Resource Governor 워크로드 그룹 구성 옵션을 사용합니다.
PRIMARY
데이터베이스가 기본에 있는 동안 보조에 대해서만 설정될 수 있으며 구성이 기본에 대해 설정된 것임을 나타냅니다. 기본에 대한 구성이 변경되는 경우 보조에 있는 값은 보조 값을 명시적으로 설정할 필요 없이 적절하게 변경됩니다. 기본은 보조에 대한 기본 설정입니다.
LEGACY_CARDINALITY_ESTIMATION = { ON | OFF | PRIMARY }
데이터베이스의 호환성 수준에 관계없이 SQL Server 2012 및 이전 버전에 대한 쿼리 최적화 프로그램 카디널리티 추정 모델을 설정할 수 있습니다. 기본값은 OFF이며, 데이터베이스의 호환성 수준에 따라 쿼리 최적화 프로그램 카디널리티 추정 모델을 설정합니다. LEGACY_CARDINALITY_ESTIMATION을 ON으로 설정하는 것은 추적 플래그 9481을 활성화하는 것과 동일합니다.
팁
쿼리 수준에서 이 작업을 수행하려면 QUERYTRACEON 쿼리 힌트를 추가합니다. SQL Server 2016(13.x) SP1부터 쿼리 수준에서 이 작업을 수행하려면 추적 플래그를 사용하는 대신 USE HINT 쿼리 힌트를 추가합니다.
PRIMARY
이 값은 데이터베이스가 기본에 있는 동안 보조에서만 유효하며, 모든 보조의 쿼리 최적화 프로그램 카디널리티 추정 모델 설정이 기본에 대해 설정된 값이 되도록 지정합니다. 쿼리 최적화 프로그램 카디널리티 추정 모델에 대한 기본의 구성이 변경되는 경우 보조의 값도 그에 따라 변경됩니다. 기본은 보조에 대한 기본 설정입니다.
PARAMETER_SNIFFING = { ON | OFF | PRIMARY }
매개 변수 검색을 사용하거나 사용하지 않도록 설정합니다. 기본값은 ON입니다. PARAMETER_SNIFFING를 OFF로 설정하는 것은 추적 플래그 4136을 활성화하는 것과 동일합니다.
팁
쿼리 수준에서 이 작업을 수행하려면 OPTIMIZE FOR UNKNOWN 쿼리 힌트를 참조하세요. SQL Server 2016(13.x) SP1부터 쿼리 수준에서 이 작업을 수행하기 위해 USE HINT 쿼리 힌트 도 사용할 수 있습니다.
PRIMARY
이 값은 데이터베이스가 기본에 있는 동안 보조에서만 유효하며, 모든 보조에서 이 설정에 대한 값이 기본에 대해 설정된 값이 되도록 지정합니다. 매개 변수 검색을 사용하기 위해 기본에 대한 구성이 변경되는 경우 보조에 있는 값은 보조 값을 명시적으로 설정할 필요 없이 적절하게 변경됩니다. PRIMARY는 보조에 대한 기본 설정입니다.
QUERY_OPTIMIZER_HOTFIXES = { ON | OFF | PRIMARY }
데이터베이스의 호환성 수준에 관계없이 쿼리 최적화 프로그램 핫픽스를 사용하거나 사용하지 않도록 설정합니다. 기본값은 OFF이며 가장 높은 호환성 수준이 특정 버전(RTM 이후)에 대해 도입된 후에 릴리스된 쿼리 최적화 프로그램 핫픽스를 비활성화합니다. 이 값을 ON으로 설정하면 추적 플래그 4199를 활성화하는 것과 동일합니다.
적용 대상: SQL Server(SQL Server 2016(13.x)부터), Azure SQL Database 및 Azure SQL Managed Instance
팁
쿼리 수준에서 이 작업을 수행하려면 QUERYTRACEON 쿼리 힌트를 추가합니다. SQL Server 2016(13.x) SP1부터 쿼리 수준에서 이를 수행하기 위해 추적 플래그를 사용하는 대신 USE HINT 쿼리 힌트를 추가합니다.
PRIMARY
이 값은 데이터베이스가 기본에 있는 동안 보조에서만 유효하며, 모든 보조에서 이 설정에 대한 값이 기본에 대해 설정된 값이 되도록 지정합니다. 기본에 대한 구성이 변경되는 경우 보조에 있는 값은 보조 값을 명시적으로 설정할 필요 없이 적절하게 변경됩니다. PRIMARY는 보조에 대한 기본 설정입니다.
IDENTITY_CACHE = { ON | OFF }
적용 대상: SQL Server(SQL Server 2017(14.x)부터), Azure SQL Database 및 Azure SQL Managed Instance
데이터베이스 수준에서 ID 캐시를 사용하거나 사용하지 않도록 설정합니다. 기본값은 ON입니다. ID 캐싱은 ID 열이 있는 테이블에서 INSERT 성능을 개선하기 위해 사용됩니다. 서버가 예기치 않게 다시 시작하거나 보조 서버로 장애 조치(failover)되는 경우에 ID 열의 값이 차이 나지 않도록 IDENTITY_CACHE 옵션을 비활성화합니다. 이 옵션은 서버 수준에서만이 아니라 데이터베이스 수준에서 설정될 수 있다는 점을 제외하고 기존 추적 플래그 272와 비슷합니다.
참고
이 옵션은 기본에 대해서만 설정될 수 있습니다. 자세한 내용은 ID 열을 참조하세요.
INTERLEAVED_EXECUTION_TVF = { ON | OFF }
적용 대상: SQL Server(SQL Server 2019(15.x)부터), Azure SQL Database 및 Azure SQL Managed Instance
데이터베이스 호환성 수준 140 이상을 유지하면서 데이터베이스 또는 명령문 범위에서 다중 명령문 테이블 값 함수에 대해 인터리브된 실행을 사용하거나 사용하지 않도록 설정할 수 있습니다. 기본값은 ON입니다. 인터리브된 실행은 Azure SQL Database의 적응 쿼리 처리의 일부인 기능입니다. 자세한 내용은 지능형 쿼리 처리를 참조하세요.
참고
데이터베이스 호환성 수준 130 이하의 경우, 이 데이터베이스 범위 구성에 아무런 영향이 없습니다.
SQL Server 2017(14.x)에서만 INTERLEAVED_EXECUTION_TVF 옵션에 DISABLE_INTERLEAVED_EXECUTION_TVF의 이전 이름이 있었습니다.
BATCH_MODE_MEMORY_GRANT_FEEDBACK = { ON | OFF }
적용 대상: SQL Server(SQL Server 2019(15.x)부터), Azure SQL Database 및 Azure SQL Managed Instance
데이터베이스 호환성 수준 140 이상을 유지하면서 데이터베이스 범위에서 일괄 처리 모드 메모리 부여 피드백을 사용하거나 사용하지 않도록 설정할 수 있습니다. 기본값은 ON입니다. SQL Server 2017(14.x)에 도입된 일괄 처리 모드 메모리 부여 피드백은 지능형 쿼리 처리 기능 제품군의 일부입니다. 자세한 내용은 메모리 부여 피드백을 참조하세요.
참고
데이터베이스 호환성 수준 130 이하의 경우, 이 데이터베이스 범위 구성에 아무런 영향이 없습니다.
BATCH_MODE_ADAPTIVE_JOINS = { ON | OFF }
적용 대상: SQL Server(SQL Server 2019(15.x)부터), Azure SQL Database 및 Azure SQL Managed Instance
데이터베이스 호환성 수준 140 이상을 유지하면서 데이터베이스 범위에서 일괄 처리 모드 적응형 조인을 사용하거나 사용하지 않도록 설정할 수 있습니다. 기본값은 ON입니다. 일괄 처리 모드 적응형 조인은 SQL Server 2017(14.x)에 도입된 지능형 쿼리 처리의 일부 기능입니다.
참고
데이터베이스 호환성 수준 130 이하의 경우, 이 데이터베이스 범위 구성에 아무런 영향이 없습니다.
TSQL_SCALAR_UDF_INLINING = { ON | OFF }
적용 대상: SQL Server(SQL Server 2019(15.x)부터) 및 Azure SQL Database(기능은 미리 보기 상태)
데이터베이스 호환성 수준 150 이상을 유지하면서 데이터베이스 범위에서 T-SQL Scalar UDF 인라인을 활성화하거나 비활성화할 수 있습니다. 기본값은 ON입니다. T-SQL Scalar UDF 인라인은 인텔리전트 쿼리 처리 기능 제품군의 일부입니다.
참고
데이터베이스 호환성 수준 140 이하의 경우, 이 데이터베이스 범위 구성에 아무런 영향이 없습니다.
ELEVATE_ONLINE = { OFF | WHEN_SUPPORTED | FAIL_UNSUPPORTED }
적용 대상: SQL Server(SQL Server 2019(15.x)부터), Azure SQL Database 및 Azure SQL Managed Instance
엔진이 지원되는 작업의 권한을 online으로 자동 상승시키도록 하는 옵션을 선택할 수 있습니다. 기본값은 OFF, 즉 명령문에 지정되지 않은 경우 작업의 권한이 online으로 상승하지 않는 것입니다. sys.database_scoped_configurations는 ELEVATE_ONLINE의 현재 값을 나타냅니다. 이러한 옵션은 online에 지원되는 작업에만 적용됩니다.
FAIL_UNSUPPORTED
이 값은 지원되는 모든 DDL 작업의 권한을 ONLINE으로 상승시킵니다. 온라인 실행을 지원하지 않는 작업은 실패하고 오류를 throw합니다.
참고 항목
테이블에 열을 추가하는 것은 일반적인 경우 온라인 작업입니다. 예를 들어 null을 허용하지 않는 열을 추가하는 경우와 같은 시나리오에서는 열을 온라인에서 추가할 수 없습니다. 이러한 경우 FAIL_UNSUPPORTED가 설정되면 작업이 실패합니다.
WHEN_SUPPORTED
이 값은 ONLINE을 지원하는 작업의 권한을 상승시킵니다. 온라인을 지원하지 않는 작업은 오프라인으로 실행됩니다.
참고
ONLINE 옵션이 지정된 명령문을 제출하여 기본 설정을 재정의할 수 있습니다.
ELEVATE_RESUMABLE= { OFF | WHEN_SUPPORTED | FAIL_UNSUPPORTED }
적용 대상: SQL Server(SQL Server 2019(15.x)부터), Azure SQL Database 및 Azure SQL Managed Instance
엔진이 지원되는 작업의 권한을 resumable로 자동 상승시키도록 하는 옵션을 선택할 수 있습니다. 기본값은 OFF, 즉 명령문에 지정되지 않은 경우 작업의 권한이 resumable로 상승되지 않는 것입니다. sys.database_scoped_configurations는 ELEVATE_ELEVATE_RESUMABLE의 현재 값을 나타냅니다. 이러한 옵션은 resumable에 지원되는 작업에만 적용됩니다.
FAIL_UNSUPPORTED
이 값은 지원되는 모든 DDL 작업의 권한을 RESUMABLE로 상승시킵니다. resumable 실행을 지원하지 않는 작업은 실패하고 오류를 throw합니다.
WHEN_SUPPORTED
이 값은 RESUMABLE을 지원하는 작업의 권한을 상승시킵니다. 다시 시작 가능을 지원하지 않는 작업은 다시 시작되지 않고 실행됩니다.
참고 항목
RESUMABLE 옵션이 지정된 명령문을 제출하여 기본 설정을 재정의할 수 있습니다.
OPTIMIZE_FOR_AD_HOC_WORKLOADS = { ON | OFF }
적용 대상: SQL Server(SQL Server 2019(15.x)부터), Azure SQL Database 및 Azure SQL Managed Instance
일괄 처리가 처음으로 컴파일될 때 캐시에 저장될 컴파일된 계획 스텁을 사용하거나 사용하지 않도록 설정합니다. 기본값은 OFF입니다. 데이터베이스 범위 구성 OPTIMIZE_FOR_AD_HOC_WORKLOADS가 데이터베이스에 대해 활성화되면 컴파일된 계획 스텁은 일괄 처리가 처음으로 컴파일될 때 캐시에 저장됩니다. 계획 스텁은 전체 컴파일된 계획의 크기에 비해 작은 메모리 사용 공간을 갖습니다. 일괄 처리가 컴파일되거나 다시 실행되는 경우 컴파일된 계획 스텁은 제거되고 전체 컴파일된 계획으로 대체됩니다.
XTP_PROCEDURE_EXECUTION_STATISTICS = { ON | OFF }
적용 대상: Azure SQL Database 및 Azure SQL Managed Instance.
현재 데이터베이스에 있는 고유하게 컴파일된 T-SQL 모듈에 대한 모듈 수준 실행 통계 수집을 활성화하거나 비활성화합니다. 기본값은 OFF입니다. 실행 통계는 sys.dm_exec_procedure_stats에 반영됩니다.
고유하게 컴파일된 T-SQL 모듈에 대한 모듈 수준 실행 통계는 이 옵션이 켜져 있거나 통계 수집이 sp_xtp_control_proc_exec_stats를 통해 활성화된 경우 수집됩니다.
XTP_QUERY_EXECUTION_STATISTICS = { ON | OFF }
적용 대상: Azure SQL Database 및 Azure SQL Managed Instance.
현재 데이터베이스에 있는 고유하게 컴파일된 T-SQL 모듈에 대한 명령문 수준 실행 통계 수집을 활성화하거나 비활성화합니다. 기본값은 OFF입니다. 실행 통계는 sys.dm_exec_query_stats 및 쿼리 저장소에 반영됩니다.
고유하게 컴파일된 T-SQL 모듈에 대한 명령문 수준 실행 통계는 이 옵션이 켜져 있거나 통계 수집이 sp_xtp_control_query_exec_stats를 통해 활성화된 경우 수집됩니다.
고유하게 컴파일된 Transact-SQL 모듈의 성능 모니터링에 대한 자세한 내용은 고유하게 컴파일된 저장 프로시저의 성능 모니터링을 참조 하세요.
ROW_MODE_MEMORY_GRANT_FEEDBACK = { ON | OFF }
적용 대상: SQL Server(SQL Server 2019(15.x)부터), Azure SQL Database 및 Azure SQL Managed Instance
데이터베이스 호환성 수준 150 이상을 유지하면서 데이터베이스 범위에서 행 모드 메모리 부여 피드백을 사용하거나 사용하지 않도록 설정할 수 있습니다. 기본값은 ON입니다. 행 모드 메모리 부여 피드백은 SQL Server 2017(14.x)에 도입된 지능형 쿼리 처리의 일부 기능입니다. 행 모드는 SQL Server 2019(15.x) 및 Azure SQL Database에서 지원됩니다. 메모리 부여 피드백에 대한 자세한 내용은 메모리 부여 피드백을 참조하세요.
참고
데이터베이스 호환성 수준 140 이하의 경우, 이 데이터베이스 범위 구성에 아무런 영향이 없습니다.
MEMORY_GRANT_FEEDBACK_PERCENTILE_GRANT = { ON | OFF }
적용 대상: SQL Server(SQL Server 2022(16.x)부터) 및 Azure SQL 데이터베이스
데이터베이스에서 시작된 모든 쿼리 실행에 대해 메모리 부여 피드백 백분위수를 사용하지 않도록 설정할 수 있습니다. 기본값은 ON입니다. 전체 내용은 백분위수 및 지속성 모드 메모리 부여 피드백을 참조하세요.
참고
데이터베이스 호환성 수준 140 이하의 경우, 이 데이터베이스 범위 구성에 아무런 영향이 없습니다.
MEMORY_GRANT_FEEDBACK_PERSISTENCE = { ON | OFF }
적용 대상: SQL Server(SQL Server 2022(16.x)부터), Azure SQL Database 및 Azure SQL Managed Instance
데이터베이스에서 시작된 모든 쿼리 실행에 대한 메모리 부여 피드백 지속성을 사용하지 않도록 설정할 수 있습니다. 기본값은 ON입니다. 전체 내용은 백분위수 및 지속성 모드 메모리 부여 피드백을 참조하세요.
참고
데이터베이스 호환성 수준 140 이하의 경우, 이 데이터베이스 범위 구성에 아무런 영향이 없습니다.
BATCH_MODE_ON_ROWSTORE = { ON | OFF }
적용 대상: SQL Server(SQL Server 2019(15.x)부터), Azure SQL Database 및 Azure SQL Managed Instance
데이터베이스 호환성 수준 150 이상을 유지하면서 데이터베이스 범위에서 행 저장소의 일괄 처리 모드를 사용하거나 사용하지 않도록 설정할 수 있습니다. 기본값은 ON입니다. 행 저장소의 일괄 처리 모드는 인텔리전트 쿼리 처리 기능 제품군의 일부 기능입니다.
참고
데이터베이스 호환성 수준 140 이하의 경우, 이 데이터베이스 범위 구성에 아무런 영향이 없습니다.
DEFERRED_COMPILATION_TV = { ON | OFF }
적용 대상: SQL Server(SQL Server 2019(15.x)부터), Azure SQL Database 및 Azure SQL Managed Instance
데이터베이스 호환성 수준 150 이상을 유지하면서 데이터베이스 범위에서 테이블 변수 지연 컴파일을 사용하거나 사용하지 않도록 설정할 수 있습니다. 기본값은 ON입니다. 테이블 변수 지연 컴파일은 인텔리전트 쿼리 처리 기능 제품군의 일부 기능입니다.
참고
데이터베이스 호환성 수준 140 이하의 경우, 이 데이터베이스 범위 구성에 아무런 영향이 없습니다.
ACCELERATED_PLAN_FORCING = { ON | OFF }
적용 대상: SQL Server(SQL Server 2019 (15.x)부터), Azure SQL Database 및 Azure SQL Managed Instance
쿼리 저장소 계획 강제 적용, 자동 튜닝 또는 USE PLAN 쿼리 힌트 등 모든 형식의 계획 강제에 적용할 수 있는 쿼리 계획 강제 적용에 최적화된 메커니즘을 활성화합니다. 기본값은 ON입니다.
참고
가속화된 계획 강제 적용을 비활성화하는 것은 권장하지 않습니다.
GLOBAL_TEMPORARY_TABLE_AUTO_DROP = { ON | OFF }
적용 대상: Azure SQL Database 및 Azure SQL Managed Instance.
전역 임시 테이블에 대한 자동 드롭 기능을 설정할 수 있습니다. 기본값은 ON입니다. 이는 전역 임시 테이블이 세션에서 사용되지 않을 때 자동으로 삭제됨을 의미합니다. OFF로 설정하면 문을 사용하여 DROP TABLE
전역 임시 테이블을 명시적으로 삭제하거나 서버 다시 시작 시 자동으로 삭제되어야 합니다.
- Azure SQL Database 단일 데이터베이스와 탄력적 풀을 사용하면 SQL Database 서버의 개별 사용자 데이터베이스에서 이 옵션을 설정할 수 있습니다.
- SQL Server 및 Azure SQL Managed Instance에서 이 옵션은
tempdb
에 설정되며 개별 사용자 데이터베이스의 설정은 영향을 미치지 않습니다.
LIGHTWEIGHT_QUERY_PROFILING = { ON | OFF }
적용 대상: SQL Server(SQL Server 2019(15.x)부터), Azure SQL Database 및 Azure SQL Managed Instance
간단한 쿼리 프로파일링 인프라를 활성화하거나 비활성화할 수 있습니다. LWP(간단한 쿼리 프로파일링 인프라)는 표준 프로파일링 매커니즘보다 쿼리 성능 데이터를 더 효율적으로 제공하며 기본적으로 활성화되어 있습니다. 기본값은 ON입니다.
VERBOSE_TRUNCATION_WARNINGS = { ON | OFF }
적용 대상: SQL Server(SQL Server 2019(15.x)부터), Azure SQL Database 및 Azure SQL Managed Instance
새 String or binary data would be truncated
오류 메시지를 사용하거나 사용하지 않도록 설정할 수 있습니다. 기본값은 ON입니다. SQL Server 2019 (15.x)에서는 이 시나리오에 대해 보다 구체적인 새 오류 메시지(2628)를 제공합니다.
String or binary data would be truncated in table '%.*ls', column '%.*ls'. Truncated value: '%.*ls'.
데이터베이스 호환성 수준 150에서 ON으로 설정하면 잘림 오류로 인해 더 많은 컨텍스트를 제공하고 문제 해결 프로세스를 간소화하기 위해 오류 메시지 2628이 발생합니다.
데이터베이스 호환성 수준 150 OFF로 설정하면 잘림 오류로 인해 이전 오류 메시지 8152가 발생합니다.
데이터베이스 호환성 수준 140 이하의 경우 오류 메시지 2628은 추적 플래그 460을 사용하도록 설정해야 하는 옵트인 오류 메지시로 남아 있으며, 이 데이터베이스 범위 구성에 영향을 주지 않습니다.
LAST_QUERY_PLAN_STATS = { ON | OFF }
적용 대상: SQL Server(SQL Server 2019(15.x)부터), Azure SQL Database 및 Azure SQL Managed Instance
sys.dm_exec_query_plan_stats에서 마지막 쿼리 계획 통계(실제 실행 계획과 동일)의 수집을 활성화하거나 비활성화할 수 있습니다. 기본값은 OFF입니다.
PAUSED_RESUMABLE_INDEX_ABORT_DURATION_MINUTES
적용 대상: SQL Server(SQL Server 2022(16.x)부터), Azure SQL Database 및 Azure SQL Managed Instance
PAUSED_RESUMABLE_INDEX_ABORT_DURATION_MINUTES
옵션은 엔진에 의해 자동으로 중단되기 전에 다시 시작 가능한 인덱스가 일시 중지되는 시간(분)을 결정합니다.
- 기본값은 1일(1,440분)로 설정됩니다.
- 최소 지속 시간은 1분으로 설정됩니다.
- 최대 기간은 71582분입니다.
- 0으로 설정하면 일시 중지된 작업이 자동으로 중단되지 않습니다.
이 옵션의 현재 값은 database_scoped_configurations에 표시됩니다.
ISOLATE_SECURITY_POLICY_CARDINALITY = { ON | OFF}
적용 대상: SQL Server(SQL Server 2019(15.x)부터), Azure SQL Database 및 Azure SQL Managed Instance
RLS(행 수준 보안) 조건자가 전체 사용자 쿼리 실행 계획의 카디널리티에 영향을 주는지 아닌지를 제어할 수 있습니다. 기본값은 OFF입니다. ISOLATE_SECURITY_POLICY_CARDINALITY가 ON이면 RLS 조건자는 실행 계획의 카디널리티에 영향을 주지 않습니다. 예를 들어 쿼리를 실행하는 특정 사용자에 대해 결과를 10개 행으로 제한하는 RLS 조건자와 100만 개의 행이 포함된 테이블이 있다고 가정합니다. 이 데이터베이스 범위 구성을 OFF로 설정할 경우 이 조건자의 예상 카디널리티는 10이 됩니다. 이 데이터베이스 범위 구성이 ON인 경우 쿼리 최적화는 1백만 개의 행을 예상합니다. 대부분의 워크로드에는 기본값을 사용하는 것이 좋습니다.
DW_COMPATIBILITY_LEVEL = { AUTO | 10 | 20 | 30 | 40 | 50 | 9000 }
적용 대상: Azure Synapse Analytics에만 해당
지정된 버전의 데이터베이스 엔진과 호환되도록 Transact-SQL 및 쿼리 처리 동작을 설정합니다. 설정되면 해당 데이터베이스에서 쿼리가 실행될 때 호환되는 기능만 실행됩니다. 각 호환성 수준에서 다양한 쿼리 처리 기능이 지원됩니다. 각 수준은 이전 수준의 기능을 흡수합니다. 처음 만들 때는 데이터베이스의 호환성 수준이 기본적으로 AUTO로 설정되며 이 설정이 권장됩니다. 호환성 수준은 데이터베이스 일시 중지/다시 시작, 백업/복원 작업 후에도 유지됩니다. 기본값은 AUTO입니다.
호환성 수준 | 주석 |
---|---|
AUTO | 기본값 해당 값은 Synapse Analytics 엔진에 의해 자동으로 업데이트되며 sys.database_scoped_configurations에서 0 로 표시됩니다. AUTO는 현재 호환성 수준 30 기능에 매핑됩니다. |
10 | 호환성 수준 지원이 도입되기 전에 Transact-SQL 및 쿼리 엔진 동작을 연습합니다. |
20 | 제어된 Transact-SQL 및 쿼리 엔진 동작을 포함하는 첫 번째 호환성 수준입니다. 시스템 저장 프로시저 sp_describe_undeclared_parameters가 이 수준에서 지원됩니다. |
30 | 새 쿼리 엔진 동작을 포함합니다. |
40 | 새 쿼리 엔진 동작을 포함합니다. |
50 | 다중 열 분포는 이 수준에서 지원됩니다. 자세한 내용은 CREATE TABLE, CREATE TABLE AS SELECT 및 CREATE MATERIALIZED VIEW를 참조하세요. |
9000 | 호환성 수준 미리 보기. 이 수준에서 제어되는 미리 보기 기능은 기능별 설명서에서 호출됩니다. 이 수준에는 9000이 아닌 최고 수준의 기능도 포함됩니다. |
EXEC_QUERY_STATS_FOR_SCALAR_FUNCTIONS = { ON | OFF }
적용 대상: Azure SQL Database 및 Azure SQL Managed Instance.
스칼라 UDF(사용자 정의 함수)의 실행 통계를 sys.dm_exec_function_stats 시스템 뷰에 표시할지를 제어할 수 있습니다. 스칼라 UDF가 많은 일부 집약적 워크로드의 경우 함수 실행 통계를 수집하면 눈에 띄는 성능 오버헤드가 발생할 수 있습니다. EXEC_QUERY_STATS_FOR_SCALAR_FUNCTIONS
데이터베이스 범위 구성을 OFF
로 설정하여 성능 오버헤드를 방지할 수 있습니다. 기본값은 ON입니다.
ASYNC_STATS_UPDATE_WAIT_AT_LOW_PRIORITY = { ON | OFF }
적용 대상: SQL Server(SQL Server 2022(16.x)부터), Azure SQL Database 및 Azure SQL Managed Instance
비동기 통계 업데이트를 사용하는 경우 이 구성을 사용하도록 설정하면 백그라운드 요청 업데이트 통계가 낮은 우선 순위 큐에 대한 Sch-M
잠금을 기다리게 되므로 높은 동시성 시나리오에서 다른 세션이 차단되지 않습니다. 자세한 내용은 AUTO_UPDATE_STATISTICS_ASYNC를 참조하세요. 기본값은 OFF입니다.
OPTIMIZED_PLAN_FORCING = { ON | OFF }
적용 대상: SQL Server(SQL Server 2022(16.x)부터) 및 Azure SQL 데이터베이스
최적화된 계획 강제 실행은 강제 쿼리를 반복하기 위한 컴파일 오버헤드를 줄입니다. 기본값은 ON입니다. 쿼리 실행 계획이 생성되면 최적화 재생 스크립트로 다시 사용할 수 있는 특정 컴파일 단계가 저장됩니다. 최적화 재생 스크립트는 쿼리 저장소의 압축된 실행 계획 XML의 일부로 숨겨진 OptimizationReplay
특성에 저장됩니다. 쿼리 저장소를 사용하여 최적화된 계획 강제 적용을 참조하세요.
DOP_FEEDBACK = { ON | OFF }
적용 대상: SQL Server(SQL Server 2022(16.x)부터) 및 Azure SQL 데이터베이스
경과된 시간 및 대기에 따라 쿼리 반복에 대한 병렬 처리 비효율성을 식별합니다. 병렬 처리 사용이 비효율적이라고 판단되면 DOP 피드백은 구성된 DOP에서 쿼리의 다음 실행에 대한 DOP를 낮추고 도움이 되는지 확인합니다. READ_WRITE 모드에서 쿼리 저장소를 사용하도록 설정해야 합니다. 자세한 내용은 DOP(병렬 처리 수준) 피드백을 참조하세요. 기본값은 OFF입니다.
CE_FEEDBACK = { ON | OFF }
적용 대상: SQL Server(SQL Server 2022(16.x)부터), Azure SQL Database 및 Azure SQL Managed Instance
CE 피드백은 기본 CE(CE120 이상)를 사용할 때 잘못된 CE 모델 가정 때문에 발생하는 인식된 회귀 문제를 해결하며, 다른 모델 가정을 선택적으로 사용할 수 있습니다. READ_WRITE 모드에서 쿼리 저장소를 사용하도록 설정해야 합니다. 자세한 내용은 카디널리티 예측(CE) 피드백을 참조합니다. 기본값은 데이터베이스 호환성 수준 160 이상에서 ON 입니다.
PARAMETER_SENSITIVE_PLAN_OPTIMIZATION = { ON | OFF }
적용 대상: SQL Server(SQL Server 2022(16.x)부터), Azure SQL Database 및 Azure SQL Managed Instance
매개 변수 민감도 계획(PSP) 최적화는 매개 변수가 있는 쿼리에 대해 캐시된 단일 계획이 수신 중인 모든 매개 변수 값에 대해 최적이 아닌 시나리오를 해결합니다. 균일하지 않은 데이터 배포의 경우입니다. 기본값은 데이터베이스 호환성 수준 160부터 ON입니다. 자세한 내용은 매개 변수 중요 계획 최적화를 참조하세요.
LEDGER_DIGEST_STORAGE_ENDPOINT = { <endpoint URL string> | OFF }
적용 대상: SQL Server(SQL Server 2022(16.x)부터)
Azure Blob Storage에 원장 다이제스트 업로드를 사용하거나 사용하지 않도록 설정합니다. 원장 다이제스트 업로드를 사용하도록 설정하려면 Azure Blob Storage 계정의 엔드포인트를 지정합니다. 원장 다이제스트 업로드를 사용하지 않으려면 옵션 값을 OFF로 설정합니다. 기본값은 OFF입니다.
FORCE_SHOWPLAN_RUNTIME_PARAMETER_COLLECTION = { ON | OFF }
적용 대상: SQL Server(SQL Server 2022(16.x)부터), Azure SQL Database 및 Azure SQL Managed Instance
SQL Server가 인프라를 프로파일링하는 간단한 쿼리 실행 통계를 사용하거나 장기 실행 쿼리 문제를 해결하는 동안 sys.dm_exec_query_statistics_xml
DMV를 실행할 때 ParameterRuntimeValue를 사용하여 Showplan XML 조각을 생성하도록 합니다.
Important
FORCE_SHOWPLAN_RUNTIME_PARAMETER_COLLECTION
데이터베이스 범위 구성 옵션은 프로덕션 환경에서 지속적으로 사용하도록 설정되는 것이 아니라 시간 제한 문제 해결을 위한 것입니다. 이 데이터베이스 범위 구성 옵션을 사용하면 DMV 또는 경량 쿼리 실행 통계 프로필 인프라를 사용할 수 있는지 여부에 관계없이 sys.dm_exec_query_statistics_xml
런타임 매개 변수 정보가 포함된 Showplan XML 조각을 만들므로 CPU 및 메모리 오버헤드가 추가로 발생할 수 있습니다.
OPTIMIZED_SP_EXECUTESQL
적용 대상: Azure SQL Database
일괄 처리가 컴파일될 때 sp_executesql 컴파일 serialization 동작을 사용하거나 사용하지 않도록 설정합니다. 기본값은 OFF입니다. sp_executesql 사용하여 컴파일 프로세스를 직렬화하는 일괄 처리를 허용하는 것은 sp_executesql 시스템 저장 프로시저를 활용하는 임시 쿼리의 빈번하고 동시 컴파일이 있을 때 컴파일 폭풍의 영향을 줄이는 데 매우 효과적입니다. sp_executesql 첫 번째 실행은 컴파일된 계획을 컴파일하고 계획 캐시에 삽입합니다. 다른 세션은 컴파일 잠금 대기를 중단하고 사용 가능해지면 계획을 다시 사용합니다. 이렇게 하면 sp_executesql 컴파일 관점에서 저장 프로시저 및 트리거와 같은 개체처럼 동작할 수 있습니다.
사용 권한
데이터베이스에 ALTER ANY DATABASE SCOPED CONFIGURATION
이 필요합니다. 이 권한은 데이터베이스에 대한 CONTROL
권한이 있는 사용자가 부여할 수 있습니다.
설명
보조 데이터베이스가 해당 기본 데이터베이스와 서로 다른 범위 구성 설정을 갖도록 구성할 수도 있지만 모든 보조 데이터베이스는 동일한 구성을 사용합니다. 개별 보조에 대해 서로 다른 설정을 구성할 수 없습니다.
이 명령문을 실행하면 현재 데이터베이스에서 프로시저 캐시를 지웁니다. 즉, 모든 쿼리를 다시 컴파일해야 합니다.
세 부분으로 구성된 이름 쿼리의 경우 다른 데이터베이스 컨텍스트에서 컴파일된 SQL 모듈(예: 프로시저, 함수 및 트리거)을 제외한 쿼리에 대한 현재 데이터베이스 연결에 대한 설정이 적용되므로 해당 데이터베이스가 상주하는 데이터베이스의 옵션을 사용합니다. 마찬가지로 통계를 비동기적으로 업데이트할 때 통계가 상주하는 데이터베이스에 ASYNC_STATS_UPDATE_WAIT_AT_LOW_PRIORITY
대한 설정이 적용됩니다.
ALTER_DATABASE_SCOPED_CONFIGURATION
이벤트는 DDL 트리거를 시작하는 데 사용할 수 있는 DDL 이벤트로 추가되며 ALTER_DATABASE_EVENTS
트리거 그룹의 자식입니다.
지정된 데이터베이스를 복원하거나 연결하면 데이터베이스 범위 구성 설정이 이월되어 데이터베이스와 함께 유지됩니다.
SQL Server 2019 (15.x)부터 Azure SQL Database 및 Azure SQL Managed Instance에서 일부 옵션 이름이 변경되었습니다.
DISABLE_INTERLEAVED_EXECUTION_TVF
가INTERLEAVED_EXECUTION_TVF
로 변경됨DISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACK
가BATCH_MODE_MEMORY_GRANT_FEEDBACK
로 변경됨DISABLE_BATCH_MODE_ADAPTIVE_JOINS
가BATCH_MODE_ADAPTIVE_JOINS
로 변경됨
제한 사항
MAXDOP
세부적인 설정은 전역 설정을 재정의하고 해당 리소스 관리자(resource governor)는 다른 모든 MAXDOP 설정을 제한할 수 있습니다. MAXDOP 설정에 대한 논리는 다음과 같습니다.
쿼리 힌트는
sp_configure
와 데이터베이스 범위 구성 모두를 재정의합니다. 리소스 그룹 MAXDOP가 작업 그룹에 대해 설정된 경우:쿼리 힌트가 제로(0)로 설정된 경우 리소스 관리자(resource governor) 설정에 의해 재정의됩니다.
쿼리 힌트가 제로(0)가 아닌 경우 리소스 관리자(resource governor) 설정에 의해 제한됩니다.
데이터베이스 범위 구성(0이 아닌 경우)은 쿼리 힌트가 있고 리소스 관리자(resource governor) 설정에 의해 제한되지 않는 한
sp_configure
설정을 재정의합니다.sp_configure
설정은 리소스 관리자(resource governor) 설정에 의해 재정의됩니다.
QUERY_OPTIMIZER_HOTFIXES
QUERYTRACEON
힌트가 SQL Server 2012(11.x) 버전 또는 쿼리 최적화 프로그램 핫픽스를 통해 SQL Server 7.0의 기본 쿼리 프로그램을 사용하도록 설정하는 데 사용되는 경우 쿼리 힌트와 데이터베이스 범위 구성 설정 간의 OR 조건이 됩니다. 즉, 둘 중 하나가 사용하도록 설정되면 데이터베이스 범위 구성이 적용됩니다.
Geo DR
읽기 가능한 보조 데이터베이스(Always On 가용성 그룹, Azure SQL Database 및 Azure SQL Managed Instance 지역 복제 데이터베이스)는 데이터베이스의 상태를 확인하여 보조 값을 사용합니다. 재컴파일이 장애 조치(failover)에서 발생하지 않고 기술적으로 새로운 기본에 보조 설정을 사용하는 쿼리가 있더라도 기본 및 보조 간의 설정은 워크로드가 다른 경우에만 다르기 때문에 캐시된 쿼리는 최적의 설정을 사용하는 반면 새로운 쿼리는 적절한 새 설정을 선택합니다.
DacFx
ALTER DATABASE SCOPED CONFIGURATION
은 데이터베이스 스키마에 영향을 미치는 Azure SQL Database, Azure SQL Managed Instance 및 SQL Server(SQL Server 2016(13.x)부터)의 새 기능이므로 스키마(데이터 유무와 상관없음)의 내보내기를 이전 버전의 SQL Server(예: SQL Server 2012(11.x) 또는 SQL Server 2014(12.x))로 가져올 수 없습니다. 예를 들어 이 새로운 기능이 사용되는 SQL Database 또는 SQL Server 2016(13.x) 데이터베이스에서 DACPAC 또는 BACPAC로 내보내기를 하위 수준 서버로 가져올 수 없게 됩니다.
ELEVATE_ONLINE
이 옵션은 WITH (ONLINE = <syntax>)
를 지원하는 DDL 문에만 적용됩니다. XML 인덱스는 영향을 받지 않습니다.
ELEVATE_RESUMABLE
이 옵션은 WITH (RESUMABLE = <syntax>)
를 지원하는 DDL 문에만 적용됩니다. XML 인덱스는 영향을 받지 않습니다.
메타데이터
sys.database_scoped_configurations(Transact-SQL) 시스템 뷰는 데이터베이스 내에서 범위 구성에 대한 정보를 제공합니다. 데이터베이스 범위 구성 옵션은 서버 차원의 기본 설정으로 재정의되면 sys.database_scoped_configurations
에 나타납니다. sys.configurations(Transact-SQL) 시스템 뷰는 서버 차원의 설정을 표시합니다.
예제
이 예제에서는 ALTER DATABASE SCOPED CONFIGURATION의 사용을 보여 줍니다.
A. 사용 권한 부여
이 예제에서는 ALTER DATABASE SCOPED CONFIGURATION을 실행하는 데 필요한 사용 권한을 사용자 Joe에게 부여합니다.
GRANT ALTER ANY DATABASE SCOPED CONFIGURATION to [Joe] ;
B. MAXDOP 설정
이 예제는 지역에서 복제 시나리오에서 기본 데이터베이스에 대해 MAXDOP = 1을 설정하고 보조 데이터베이스에 대해 MAXDOP = 4를 설정합니다.
ALTER DATABASE SCOPED CONFIGURATION SET MAXDOP = 1 ;
ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET MAXDOP = 4 ;
이 예제는 지역에서 복제 시나리오에서 해당 기본 데이터베이스에 대해 설정된 것과 동일하도록 보조 데이터베이스에 대한 MAXDOP를 설정합니다.
ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET MAXDOP = PRIMARY ;
C. LEGACY_CARDINALITY_ESTIMATION 설정
이 예제는 지역에서 복제 시나리오에서 보조 데이터베이스에 대해 LEGACY_CARDINALITY_ESTIMATION을 ON으로 설정합니다.
ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET LEGACY_CARDINALITY_ESTIMATION = ON ;
이 예제는 지역에서 복제 시나리오에서 해당 기본 데이터베이스에 대해 설정된 것으로 보조 데이터베이스에 대해 LEGACY_CARDINALITY_ESTIMATION을 설정합니다.
ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET LEGACY_CARDINALITY_ESTIMATION = PRIMARY ;
D. PARAMETER_SNIFFING 설정
이 예제는 지역에서 복제 시나리오에서 기본 데이터베이스에 대해 PARAMETER_SNIFFING을 OFF로 설정합니다.
ALTER DATABASE SCOPED CONFIGURATION SET PARAMETER_SNIFFING = OFF ;
이 예제는 지역에서 복제 시나리오에서 보조 데이터베이스에 대해 PARAMETER_SNIFFING을 OFF로 설정합니다.
ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET PARAMETER_SNIFFING = OFF ;
이 예제는 지역에서 복제 시나리오에서 보조 데이터베이스에 대한 PARAMETER_SNIFFING을 기본 데이터베이스에 대한 것으로 설정합니다.
ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET PARAMETER_SNIFFING = PRIMARY ;
E. QUERY_OPTIMIZER_HOTFIXES 설정
지역에서 복제 시나리오에서 기본 데이터베이스에 대해 QUERY_OPTIMIZER_HOTFIXES를 ON으로 설정합니다.
ALTER DATABASE SCOPED CONFIGURATION SET QUERY_OPTIMIZER_HOTFIXES = ON ;
F. 프로시저 캐시 지우기
이 예제에서는 프로시저 캐시를 지웁니다(기본 데이터베이스에 대해서만 사용 가능).
ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE;
G. IDENTITY_CACHE 설정
적용 대상: SQL Server(SQL Server 2017(14.x)부터), Azure SQL Database 및 Azure SQL Managed Instance
이 예제는 ID 캐시를 비활성화합니다.
ALTER DATABASE SCOPED CONFIGURATION SET IDENTITY_CACHE = OFF ;
H. OPTIMIZE_FOR_AD_HOC_WORKLOADS 설정
적용 대상: SQL Server(SQL Server 2019(15.x)부터), Azure SQL Database 및 Azure SQL Managed Instance
이 예제는 일괄 처리가 처음으로 컴파일될 때 캐시에 저장될 컴파일된 계획 스텁을 활성화합니다.
ALTER DATABASE SCOPED CONFIGURATION SET OPTIMIZE_FOR_AD_HOC_WORKLOADS = ON;
9\. ELEVATE_ONLINE 설정
적용 대상: SQL Server(SQL Server 2019(15.x)부터), Azure SQL Database 및 Azure SQL Managed Instance
이 예에서는 ELEVATE_ONLINE을 FAIL_UNSUPPORTED로 설정합니다.
ALTER DATABASE SCOPED CONFIGURATION SET ELEVATE_ONLINE = FAIL_UNSUPPORTED ;
J. ELEVATE_RESUMABLE 설정
적용 대상: SQL Server(SQL Server 2019(15.x)부터), Azure SQL Database 및 Azure SQL Managed Instance
이 예에서는 ELEVATE_RESUMABLE을 WHEN_SUPPORTED로 설정합니다.
ALTER DATABASE SCOPED CONFIGURATION SET ELEVATE_RESUMABLE = WHEN_SUPPORTED ;
11. 계획 캐시에서 쿼리 계획 지우기
적용 대상: SQL Server(SQL Server 2019(15.x)부터), Azure SQL Database 및 Azure SQL Managed Instance
이 예에서는 프로시저 캐시에서 특정 계획을 지웁니다.
ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE 0x06000500F443610F003B7CD12C02000001000000000000000000000000000000000000000000000000000000;
12. 일시 중지 기간 설정
적용 대상: Azure SQL Database 및 Azure SQL Managed Instance.
이 예제에서는 다시 시작 가능한 인덱스 일시 중지 기간을 60분으로 설정합니다.
ALTER DATABASE SCOPED CONFIGURATION
SET PAUSED_RESUMABLE_INDEX_ABORT_DURATION_MINUTES = 60
M. 원장 다이제스트 업로드 사용 및 사용 안 함
적용 대상: SQL Server(SQL Server 2022(16.x)부터)
이 예제에서는 Azure 스토리지 계정에 원장 다이제스트를 업로드할 수 있습니다.
ALTER DATABASE SCOPED CONFIGURATION
SET LEDGER_DIGEST_STORAGE_ENDPOINT = 'https://mystorage.blob.core.windows.net'
이 예제에서는 원장 다이제스트 업로드를 사용하지 않도록 설정합니다.
ALTER DATABASE SCOPED CONFIGURATION
SET LEDGER_DIGEST_STORAGE_ENDPOINT = OFF
추가 리소스
MAXDOP 리소스
LEGACY_CARDINALITY_ESTIMATION 리소스
PARAMETER_SNIFFING 리소스
QUERY_OPTIMIZER_HOTFIXES 리소스
ELEVATE_ONLINE 리소스
ELEVATE_RESUMABLE 리소스
관련 콘텐츠
- sys.database_scoped_configurations
- sys.configurations
- 데이터베이스 및 파일 카탈로그 뷰(Transact-SQL)
- 서버 구성 옵션(SQL Server)
- ALTER INDEX(Transact-SQL)
- CREATE INDEX(Transact-SQL)
- SQL Server의 "max degree of parallelism" 구성 옵션에 대한 권장 사항 및 지침(영문)
- 온라인 인덱스 작동 방식
- 온라인으로 인덱스 작업 수행
- SQL 데이터베이스의 인텔리전트 쿼리 처리
- 메모리 부여 피드백
- CE(카디널리티 추정) 피드백
- DOP(병렬 처리 수준) 피드백