다음을 통해 공유


ALTER DATABASE SCOPED CONFIGURATION(Transact-SQL)

적용 대상: Microsoft Fabric의 SQL Server 2016(13.x) 이상 버전 Azure SQL Database Azure SQL Managed Instance Azure Synapse AnalyticsSQL 데이터베이스

이 명령은 개별 데이터베이스 수준에서 여러 데이터베이스 구성 설정을 사용하도록 설정합니다.

중요

다양한 DATABASE SCOPED CONFIGURATION 옵션이 다양한 버전의 SQL Server 또는 Azure 서비스에서 지원됩니다. 이 페이지에서는 모든. 해당하는 경우 버전이 적어 집니다. 사용 중인 서비스 버전에서 사용할 수 있는 구문을 사용해야 합니다.

다음 설정은 인수 섹션의 각 설정에 대한 적용 대상 줄에 표시된 대로 Azure SQL Database, Microsoft Fabric의 SQL Database, Azure SQL Managed Instance 및 SQL Server에서 지원됩니다.

  • 프로시저 캐시를 지웁니다.
  • MAXDOP 매개 변수를 특정 워크로드에 가장 적합한 항목에 따라 주 데이터베이스의 권장 값(1, 2, ...)으로 설정하고 쿼리를 보고하는 데 사용되는 보조 복제본 데이터베이스에 대해 다른 값을 설정합니다. MAXDOP 선택에 대한 지침은 Server 구성: 최대 병렬 처리 수준검토하세요.
  • 데이터베이스와 관계없이 쿼리 최적화 프로그램 카디널리티 추정 모델을 호환성 수준으로 설정합니다.
  • 데이터베이스 수준에서 매개 변수 스니핑을 사용하거나 사용하지 않도록 설정합니다.
  • 데이터베이스 수준에서 쿼리 최적화 프로그램 핫픽스를 사용하거나 사용하지 않도록 설정합니다.
  • 데이터베이스 수준에서 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에서만 사용할 수 있습니다.

  • 사용자 데이터베이스의 호환성 수준 설정

Transact-SQL 구문 표기 규칙

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_TVFINTERLEAVED_EXECUTION_TVF로 변경됨
  • DISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACKBATCH_MODE_MEMORY_GRANT_FEEDBACK로 변경됨
  • DISABLE_BATCH_MODE_ADAPTIVE_JOINSBATCH_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으로 설정하지 않는 한 재정의합니다. 쿼리 힌트는 다른 설정을 필요로 하는 특정 쿼리를 조정하기 위해 데이터베이스 범위 MAXDOP를 여전히 재정의할 수 있습니다. 이러한 모든 설정은 작업 그룹에 대해 설정된 MAXDOP로 제한됩니다.

MAXDOP 옵션을 사용하여 병렬 계획 실행에 사용되도록 프로세서 수를 제한할 수 있습니다. SQL Server는 쿼리에 대한 병렬 실행 계획, 인덱스 DDL(데이터 정의 언어) 작업, 병렬 삽입, 온라인 열 변경, 병렬 통계 수집 및 정적 커서와 키 집합 커서 채우기를 고려합니다.

참고

MAXDOP(최대 병렬 처리 수준) 제한은 태스크별로 설정됩니다. 요청 또는 쿼리 제한당이 아닙니다. 즉, 병렬 쿼리 실행 중에 단일 요청은 스케줄러에 할당되는 여러 작업을 생성할 수 있습니다. 자세한 내용은 스레드 및 태스크 아키텍처 가이드를 참조하세요.

인스턴스 수준에서 이 옵션을 설정하려면 max degree of parallelism 서버 구성 옵션 구성을 참조하세요.

참고

Azure SQL Database에서 새로운 단일 탄력적 풀 데이터베이스의 MAXDOP 데이터베이스 범위 구성은 기본적으로 8로 설정됩니다. 현재 문서에 설명된 대로 각 데이터베이스에 대해 MAXDOP를 구성할 수 있습니다. MAXDOP를 최적으로 구성하는 방법에 대한 권장 사항은 추가 리소스 섹션을 참조하세요.

쿼리 수준에서 이 작업을 수행하려면 MAXDOP 쿼리 힌트사용합니다.
서버 수준에서 이 작업을 수행하려면 MAXDOP(최대 병렬 처리 수준)서버 구성 옵션을 사용합니다.
워크로드 수준에서 이 작업을 수행하려면 MAX_DOPResource 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 성능을 개선하기 위해 사용됩니다. 서버가 예기치 않게 다시 시작되거나 보조 서버로 장애 조치되는 경우 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. 즉, 문에 지정하지 않는 한 작업이 온라인 상태로 상승되지 않습니다. sys.database_scoped_configurationsELEVATE_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. 즉, 문에 지정하지 않는 한 작업을 다시 시작 가능하도록 상승하지 않습니다. sys.database_scoped_configurationsELEVATE_RESUMABLE현재 값을 반영합니다. 이러한 옵션은 resumable에 지원되는 작업에만 적용됩니다.

FAIL_UNSUPPORTED

이 값은 지원되는 모든 DDL 작업의 권한을 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 모듈에 대한 문 수준 실행 통계는 이 옵션이 ON또는 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 }

적용 대상: SQL Server(SQL Server 2019(15.x)부터), Azure SQL Database 및 Azure SQL Managed Instance

전역 임시 테이블에 대한 자동 드롭 기능을 설정할 수 있습니다. 기본값은 ON. 즉, 세션이나 태스크에서 사용하지 않을 때 전역 임시 테이블이 자동으로 삭제됩니다. OFF설정하면 전역 임시 테이블은 DROP TABLE 문을 사용하여 명시적으로 삭제하거나 데이터베이스 엔진을 다시 시작할 때 자동으로 삭제될 수 있습니다.

  • Azure 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 엔진에 의해 자동으로 업데이트되며 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 }

적용 대상: SQL Server 2022(16.x) 이상 버전, 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 조각을 생성하도록 합니다.

중요

FORCE_SHOWPLAN_RUNTIME_PARAMETER_COLLECTION 데이터베이스 범위 구성 옵션은 프로덕션 환경에서 지속적으로 사용하도록 설정되는 것이 아니라 시간 제한 문제 해결을 위한 것입니다. 이 데이터베이스 범위 구성 옵션을 사용하면 sys.dm_exec_query_statistics_xml DMV 또는 경량 쿼리 실행 통계 프로필 인프라를 사용할 수 있는지 여부에 관계없이 런타임 매개 변수 정보가 포함된 Showplan XML 조각을 만들 때 추가적인 CPU 및 메모리 오버헤드가 발생할 수 있습니다.

OPTIMIZED_SP_EXECUTESQL = { ON | OFF }

적용 대상: Azure SQL Database

일괄 처리가 컴파일될 때 sp_executesql 컴파일 serialization 동작을 사용하거나 사용하지 않도록 설정합니다. 기본값은 OFF. sp_executesql 사용하여 컴파일 프로세스를 serialize하는 일괄 처리를 허용하면 컴파일 폭풍의 영향을 줄일 수 있습니다. 컴파일 폭풍은 많은 수의 쿼리가 동시에 컴파일되어 성능 문제 및 리소스 경합을 초래하는 상황을 나타냅니다.

OPTIMIZED_SP_EXECUTESQL ON경우 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_TVFINTERLEAVED_EXECUTION_TVF로 변경됨
  • DISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACKBATCH_MODE_MEMORY_GRANT_FEEDBACK로 변경됨
  • DISABLE_BATCH_MODE_ADAPTIVE_JOINSBATCH_MODE_ADAPTIVE_JOINS로 변경됨

Microsoft Fabric의 SQL 데이터베이스에서 인증은 USER IDENTITY사용하여 Microsoft Entra ID 통과를 통해 이루어집니다.

데이터베이스 범위 구성 옵션의 상태 확인

데이터베이스에서 구성이 사용(1) 또는 사용 안 함(0)인지 확인하려면 sys.database_scoped_configurations쿼리할 수 있습니다. 예를 들어 LEGACY_CARDINALITY_ESTIMATION 값을 확인하려면 다음과 같은 쿼리를 사용합니다.

USE <user_database>;
SELECT 
    name, 
    value, 
    value_for_secondary 
FROM sys.database_scoped_configurations
WHERE name = 'LEGACY_CARDINALITY_ESTIMATION';

제한 사항

MAXDOP

세부적인 설정은 전역 설정을 재정의하고 해당 리소스 관리자(resource governor)는 다른 모든 MAXDOP 설정을 제한할 수 있습니다. MAXDOP 설정에 대한 논리는 다음과 같습니다.

  • 쿼리 힌트는 sp_configure와 데이터베이스 범위 구성 모두를 재정의합니다. 리소스 그룹 MAXDOP가 작업 그룹에 대해 설정된 경우:

    • 쿼리 힌트가 제로(0)로 설정된 경우 리소스 관리자(resource governor) 설정에 의해 재정의됩니다.

    • 쿼리 힌트가 0이 아니면 리소스 관리자 설정으로 제한됩니다.

  • 데이터베이스 범위 구성(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 2012(11.x) 또는 SQL Server 2014(12.x)와 같은 이전 버전의 SQL Server로 스키마 내보내기를 가져올 수 없습니다. 예를 들어 이 새로운 기능이 사용되는 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. 사용 권한 부여

이 예제에서는 사용자 JoeALTER DATABASE SCOPED CONFIGURATION 실행하는 데 필요한 권한을 부여합니다.

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 설정

다음은 지역에서 복제 시나리오에서 보조 데이터베이스에 대한 ONLEGACY_CARDINALITY_ESTIMATION 설정하는 예제입니다.

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 설정

다음은 지역 복제 시나리오에서 주 데이터베이스에 대한 OFFPARAMETER_SNIFFING 설정하는 예제입니다.

ALTER DATABASE SCOPED CONFIGURATION 
SET PARAMETER_SNIFFING = OFF;

다음은 지역에서 복제 시나리오에서 보조 데이터베이스에 대한 OFFPARAMETER_SNIFFING 설정하는 예제입니다.

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 설정

지역 복제 시나리오에서 주 데이터베이스에 대한 ONQUERY_OPTIMIZER_HOTFIXES 설정합니다.

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_ONLINEFAIL_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_RESUMABLEWHEN_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 리소스

온라인 인덱스 작업에 대한 지침