ALTER DATABASE SCOPED CONFIGURATION(Transact-SQL)ALTER DATABASE SCOPED CONFIGURATION (Transact-SQL)

적용 대상: 예SQL Server 2016 이상 예Azure SQL Database 예Azure Synapse Analytics(SQL DW) 아니요병렬 데이터 웨어하우스 APPLIES TO: YesSQL Server 2016 and later YesAzure SQL Database YesAzure Synapse Analytics (SQL DW) NoParallel Data Warehouse

이 명령은 개별 데이터베이스 수준에서 여러 데이터베이스 구성 설정을 사용하도록 설정합니다.This command enables several database configuration settings at the individual database level.

다음 설정은 Azure SQL DatabaseAzure SQL DatabaseSQL ServerSQL Server에서 지원됩니다(인수 섹션의 각 설정에 대한 적용 대상 줄로 표시됨).Following settings are supported in Azure SQL DatabaseAzure SQL Database and in SQL ServerSQL Server as indicated by the APPLIES TO line for each setting in the Arguments section:

  • 프로시저 캐시를 지웁니다.Clear procedure cache.
  • 주 데이터베이스의 경우 MAXDOP 매개 변수를 해당 데이터베이스에 가장 적합한 임의 값(1,2, ...)으로 설정하고 사용되는 보조 데이터베이스(예: 보고 쿼리용)에는 다른 값(예: 0)을 설정합니다.Set the MAXDOP parameter to an arbitrary value (1,2, ...) for the primary database based on what works best for that particular database and set a different value (such as 0) for all secondary database used (such as for reporting queries).
  • 데이터베이스와 관계없이 쿼리 최적화 프로그램 카디널리티 추정 모델을 호환성 수준으로 설정합니다.Set the query optimizer cardinality estimation model independent of the database to compatibility level.
  • 데이터베이스 수준에서 매개 변수 스니핑을 사용하거나 사용하지 않도록 설정합니다.Enable or disable parameter sniffing at the database level.
  • 데이터베이스 수준에서 쿼리 최적화 프로그램 핫픽스를 사용하거나 사용하지 않도록 설정합니다.Enable or disable query optimization hotfixes at the database level.
  • 데이터베이스 수준에서 ID 캐시를 사용하거나 사용하지 않도록 설정합니다.Enable or disable the identity cache at the database level.
  • 일괄 처리가 처음으로 컴파일될 때 캐시에 저장될 컴파일된 계획 스텁을 사용하거나 사용하지 않도록 설정합니다.Enable or disable a compiled plan stub to be stored in cache when a batch is compiled for the first time.
  • 고유하게 컴파일된 T-SQL 모듈에 대한 실행 통계의 수집을 활성화하거나 비활성화합니다.Enable or disable collection of execution statistics for natively compiled T-SQL modules.
  • ONLINE = 구문을 지원하는 DDL 문에 기본적으로 온라인 옵션을 활성화 또는 비활성화합니다.Enable or disable online by default options for DDL statements that support the ONLINE = syntax.
  • RESUMABLE = 구문을 지원하는 DDL 문에 기본적으로 다시 시작 가능 옵션을 활성화 또는 비활성화합니다.Enable or disable resumable by default options for DDL statements that support the RESUMABLE = syntax.
  • 지능형 쿼리 처리 기능을 활성화하거나 비활성화합니다.Enable or disable Intelligent query processing features.
  • 가속 계획 강제를 활성화하거나 비활성화합니다.Enable or disable accelerated plan forcing.
  • 글로벌 임시 테이블의 자동 삭제 기능을 활성화하거나 비활성화합니다.Enable or disable the auto-drop functionality of global temporary tables.
  • 간단한 쿼리 프로파일링 인프라를 활성화하거나 비활성화합니다.Enable or disable the lightweight query profiling infrastructure.
  • String or binary data would be truncated 오류 메시지를 활성화하거나 비활성화합니다.Enable or disable the new String or binary data would be truncated error message.
  • sys.dm_exec_query_plan_stats에서 마지막 실제 실행 계획의 수집을 활성화하거나 비활성화합니다.Enable or disable collection of last actual execution plan in sys.dm_exec_query_plan_stats.
  • 일시 중지된 다시 시작 가능 인덱스 작업이 SQL Server 엔진에서 자동으로 중단되기 전에 일시 중지되는 시간(분)을 지정합니다.Specify the number of minutes that a paused resumable index operation is paused before it is automatically aborted by the SQL Server engine.
  • 비동기 통계 업데이트를 위한 낮은 우선 순위 잠금 대기를 사용하거나 사용하지 않도록 설정Enable or disable waiting for locks at low priority for asynchronous statistics update

이 설정은 Azure Synapse Analytics(이전의 SQL DW)에서만 사용할 수 있습니다.This setting is only available in Azure Synapse Analytics (Formerly SQL DW).

  • 사용자 데이터베이스의 호환성 수준 설정Set the compatibility level of a user database

링크 아이콘 Transact-SQL 구문 표기 규칙link icon Transact-SQL Syntax Conventions

구문Syntax

-- Syntax for SQL Server and Azure SQL Database

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 }
    | 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 }
    | ASYNC_STATS_UPDATE_WAIT_AT_LOW_PRIORITY = { ON | OFF }
}

중요

Azure SQL DatabaseAzure SQL Database부터 및 SQL Server 2019 (15.x)SQL Server 2019 (15.x)에서 일부 옵션 이름이 변경되었습니다.Starting with SQL Server 2019 (15.x)SQL Server 2019 (15.x) and in Azure SQL DatabaseAzure SQL Database, some option names have changed:

  • DISABLE_INTERLEAVED_EXECUTION_TVFINTERLEAVED_EXECUTION_TVF로 변경됨DISABLE_INTERLEAVED_EXECUTION_TVF changed to INTERLEAVED_EXECUTION_TVF
  • DISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACKBATCH_MODE_MEMORY_GRANT_FEEDBACK로 변경됨DISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACK changed to BATCH_MODE_MEMORY_GRANT_FEEDBACK
  • DISABLE_BATCH_MODE_ADAPTIVE_JOINSBATCH_MODE_ADAPTIVE_JOINS로 변경됨DISABLE_BATCH_MODE_ADAPTIVE_JOINS changed to BATCH_MODE_ADAPTIVE_JOINS
-- Syntax for Azure Synapse Analytics (Formerly SQL DW)

ALTER DATABASE SCOPED CONFIGURATION
{
    SET <set_options>
}
[;]

< set_options > ::=
{
    DW_COMPATIBILITY_LEVEL = { AUTO | 10 | 20 } 
}

인수Arguments

보조용FOR SECONDARY

보조 데이터베이스에 대한 설정을 지정합니다(모든 보조 데이터베이스가 동일한 값을 가져야 함).Specifies the settings for secondary databases (all secondary databases must have the identical values).

CLEAR PROCEDURE_CACHE [plan_handle]CLEAR PROCEDURE_CACHE [plan_handle]

데이터베이스에 대한 프로시저(플랜) 캐시를 지우고 기본 및 보조에서 둘 다 실행할 수 있습니다.Clears the procedure (plan) cache for the database, and can be executed both on the primary and the secondaries.

쿼리 계획 핸들을 지정하여 계획 캐시에서 단일 쿼리 계획을 지웁니다.Specify a query plan handle to clear a single query plan from the plan cache.

적용 대상: 쿼리 계획 핸들을 지정하는 작업은 Azure SQL Database 및 SQL Server 2019 이상에서 수행할 수 있습니다.APPLIES TO: Specifying a query plan handle is available in Azure SQL Database and SQL Server 2019 or higher.

MAXDOP = {<value> | PRIMARY } <value>MAXDOP = {<value> | PRIMARY } <value>

문에 사용해야 하는 기본 max degree of parallelism (MAXDOP) 설정을 지정합니다.Specifies the default max degree of parallelism (MAXDOP) setting that should be used for statements. 0은 기본값이며 서버 구성이 대신 사용됨을 나타냅니다.0 is the default value and indicates that the server configuration will be used instead. 데이터베이스 범위에서 MAXDOP는 sp_configure로 서버 수준에서 max degree of parallelism 설정을 재정의합니다(0으로 설정되지 않은 한).The MAXDOP at the database scope overrides (unless it is set to 0) the max degree of parallelism set at the server level by sp_configure. 쿼리 힌트는 다른 설정을 필요로 하는 특정 쿼리를 조정하기 위해 데이터베이스 범위 MAXDOP를 여전히 재정의할 수 있습니다.Query hints can still override the database scoped MAXDOP in order to tune specific queries that need different setting. 이러한 모든 설정은 작업 그룹에 대해 설정된 MAXDOP로 제한됩니다.All these settings are limited by the MAXDOP set for the Workload Group.

MAXDOP 옵션을 사용하여 병렬 계획 실행에 사용되도록 프로세서 수를 제한할 수 있습니다.You can use the MAXDOP option to limit the number of processors to use in parallel plan execution. SQL ServerSQL Server에서는 쿼리에 대한 병렬 실행 계획, 인덱스 DDL(데이터 정의 언어) 작업, 병렬 삽입, 온라인 열 변경, 병렬 통계 수집 및 정적 커서와 키 집합 커서 채우기를 고려합니다.considers parallel execution plans for queries, index data definition language (DDL) operations, parallel insert, online alter column, parallel stats collection, and static and keyset-driven cursor population.

참고

MAXDOP(최대 병렬 처리 수준) 제한은 태스크별로 설정됩니다.The max degree of parallelism (MAXDOP) limit is set per task. 요청별 또는 쿼리 제한별로 수행되지 않습니다.It is not a per request or per query limit. 즉, 병렬 쿼리 실행 중에 단일 요청은 스케줄러에 할당되는 여러 작업을 생성할 수 있습니다.This means that during a parallel query execution, a single request can spawn multiple tasks which are assigned to a scheduler. 자세한 내용은 스레드 및 태스크 아키텍처 가이드를 참조하세요.For more information, see the Thread and Task Architecture Guide.

인스턴스 수준에서 이 옵션을 설정하려면 max degree of parallelism 서버 구성 옵션 구성을 참조하세요.To set this option at the instance level, see Configure the max degree of parallelism Server Configuration Option.

참고

Azure SQL DatabaseAzure SQL Database에서 새로운 단일 탄력적 풀 데이터베이스의 MAXDOP 데이터베이스 범위 구성은 기본적으로 8로 설정됩니다.In Azure SQL DatabaseAzure SQL Database, the MAXDOP database-scoped configuration for new single and elastic pool databases is set to 8 by default. 현재 문서에 설명된 대로 각 데이터베이스에 대해 MAXDOP를 구성할 수 있습니다.MAXDOP can be configured for each database as described in the current article. MAXDOP를 최적으로 구성하는 방법에 대한 권장 사항은 추가 리소스 섹션을 참조하세요.For recommendations on configuring MAXDOP optimally, see Additional Resources section.

쿼리 수준에서 이 작업을 수행하려면 MAXDOP 쿼리 힌트를 사용합니다.To accomplish this at the query level, use the MAXDOP query hint.
서버 수준에서 이 작업을 수행하려면 MAXDOP(최대 병렬 처리 수준) 서버 구성 옵션을 사용합니다.To accomplish this at the server level, use the max degree of parallelism (MAXDOP) server configuration option.
워크로드 수준에서 이 작업을 수행하려면 MAX_DOP Resource Governor 워크로드 그룹 구성 옵션을 사용합니다.To accomplish this at the workload level, use the MAX_DOP Resource Governor workload group configuration option.

PRIMARYPRIMARY

데이터베이스가 기본에 있는 동안 보조에 대해서만 설정될 수 있으며 구성이 기본에 대해 설정된 것임을 나타냅니다.Can only be set for the secondaries, while the database in on the primary, and indicates that the configuration will be the one set for the primary. 기본에 대한 구성이 변경되는 경우 보조에 있는 값은 보조 값을 명시적으로 설정할 필요 없이 적절하게 변경됩니다.If the configuration for the primary changes, the value on the secondaries will change accordingly without the need to set the secondaries value explicitly. 기본은 보조에 대한 기본 설정입니다.PRIMARY is the default setting for the secondaries.

LEGACY_CARDINALITY_ESTIMATION = { ON | OFF | PRIMARY }LEGACY_CARDINALITY_ESTIMATION = { ON | OFF | PRIMARY }

데이터베이스의 호환성 수준에 관계없이 SQL Server 2012 및 이전 버전에 대한 쿼리 최적화 프로그램 카디널리티 추정 모델을 설정할 수 있습니다.Enables you to set the query optimizer cardinality estimation model to the SQL Server 2012 and earlier version independent of the compatibility level of the database. 기본값은 OFF이며, 데이터베이스의 호환성 수준에 따라 쿼리 최적화 프로그램 카디널리티 추정 모델을 설정합니다.The default is OFF, which sets the query optimizer cardinality estimation model based on the compatibility level of the database. LEGACY_CARDINALITY_ESTIMATION을 ON으로 설정하는 것은 추적 플래그 9481을 활성화하는 것과 동일합니다.Setting LEGACY_CARDINALITY_ESTIMATION to ON is equivalent to enabling Trace Flag 9481.

쿼리 수준에서 이 작업을 수행하려면 QUERYTRACEON 쿼리 힌트를 추가합니다.To accomplish this at the query level, add the QUERYTRACEON query hint. SQL Server 2016(13.x)SQL Server 2016 (13.x) SP1부터 쿼리 수준에서 이 작업을 수행하려면 추적 플래그를 사용하는 대신 USE HINT 쿼리 힌트를 추가합니다.Starting with SQL Server 2016(13.x)SQL Server 2016 (13.x) SP1, to accomplish this at the query level, add the USE HINT query hint instead of using the trace flag.

PRIMARYPRIMARY

이 값은 데이터베이스가 기본에 있는 동안 보조에서만 유효하며, 모든 보조의 쿼리 최적화 프로그램 카디널리티 추정 모델 설정이 기본에 대해 설정된 값이 되도록 지정합니다.This value is only valid on secondaries while the database in on the primary, and specifies that the query optimizer cardinality estimation model setting on all secondaries will be the value set for the primary. 쿼리 최적화 프로그램 카디널리티 추정 모델에 대한 기본의 구성이 변경되는 경우 보조의 값도 그에 따라 변경됩니다.If the configuration on the primary for the query optimizer cardinality estimation model changes, the value on the secondaries will change accordingly. 기본은 보조에 대한 기본 설정입니다.PRIMARY is the default setting for the secondaries.

PARAMETER_SNIFFING = { ON | OFF | PRIMARY}PARAMETER_SNIFFING = { ON | OFF | PRIMARY}

매개 변수 검색을 사용하거나 사용하지 않도록 설정합니다.Enables or disables parameter sniffing. 기본값은 ON입니다.The default is ON. PARAMETER_SNIFFING를 OFF로 설정하는 것은 추적 플래그 4136을 활성화하는 것과 동일합니다.Setting PARAMETER_SNIFFING to OFF is equivalent to enabling Trace Flag 4136.

쿼리 수준에서 이 작업을 수행하려면 OPTIMIZE FOR UNKNOWN 쿼리 힌트를 참조하세요.To accomplish this at the query level, see the OPTIMIZE FOR UNKNOWN query hint. SQL Server 2016(13.x)SQL Server 2016 (13.x) SP1부터 쿼리 수준에서 이 작업을 수행하기 위해 USE HINT 쿼리 힌트를 사용할 수도 있습니다.Starting with SQL Server 2016(13.x)SQL Server 2016 (13.x) SP1, to accomplish this at the query level, the USE HINT query hint is also available.

PRIMARYPRIMARY

이 값은 데이터베이스가 기본에 있는 동안 보조에서만 유효하며, 모든 보조에서 이 설정에 대한 값이 기본에 대해 설정된 값이 되도록 지정합니다.This value is only valid on secondaries while the database in on the primary, and specifies that the value for this setting on all secondaries will be the value set for the primary. 매개 변수 검색을 사용하기 위해 기본에 대한 구성이 변경되는 경우 보조에 있는 값은 보조 값을 명시적으로 설정할 필요 없이 적절하게 변경됩니다.If the configuration on the primary for using parameter sniffing changes, the value on the secondaries will change accordingly without the need to set the secondaries value explicitly. PRIMARY는 보조에 대한 기본 설정입니다.PRIMARY is the default setting for the secondaries.

QUERY_OPTIMIZER_HOTFIXES = { ON | OFF | PRIMARY }QUERY_OPTIMIZER_HOTFIXES = { ON | OFF | PRIMARY }

데이터베이스의 호환성 수준에 관계없이 쿼리 최적화 프로그램 핫픽스를 사용하거나 사용하지 않도록 설정합니다.Enables or disables query optimization hotfixes regardless of the compatibility level of the database. 기본값은 OFF이며 가장 높은 호환성 수준이 특정 버전(RTM 이후)에 대해 도입된 후에 릴리스된 쿼리 최적화 프로그램 핫픽스를 비활성화합니다.The default is OFF, which disables query optimization hotfixes that were released after the highest available compatibility level was introduced for a specific version (post-RTM). 이 값을 ON으로 설정하면 추적 플래그 4199를 활성화하는 것과 동일합니다.Setting this to ON is equivalent to enabling Trace Flag 4199.

적용 대상: SQL ServerSQL Server (SQL Server 2016(13.x)SQL Server 2016 (13.x)부터 시작) 및 Azure SQL DatabaseAzure SQL DatabaseAPPLIES TO: SQL ServerSQL Server (Starting with SQL Server 2016(13.x)SQL Server 2016 (13.x)) and Azure SQL DatabaseAzure SQL Database

쿼리 수준에서 이 작업을 수행하려면 QUERYTRACEON 쿼리 힌트를 추가합니다.To accomplish this at the query level, add the QUERYTRACEON query hint. SQL Server 2016(13.x)SQL Server 2016 (13.x) SP1부터 쿼리 수준에서 이를 수행하기 위해 추적 플래그를 사용하는 대신 USE HINT 쿼리 힌트를 추가합니다.Starting with SQL Server 2016(13.x)SQL Server 2016 (13.x) SP1, to accomplish this at the query level, add the USE HINT query hint instead of using the trace flag.

PRIMARYPRIMARY

이 값은 데이터베이스가 기본에 있는 동안 보조에서만 유효하며, 모든 보조에서 이 설정에 대한 값이 기본에 대해 설정된 값이 되도록 지정합니다.This value is only valid on secondaries while the database in on the primary, and specifies that the value for this setting on all secondaries is the value set for the primary. 기본에 대한 구성이 변경되는 경우 보조에 있는 값은 보조 값을 명시적으로 설정할 필요 없이 적절하게 변경됩니다.If the configuration for the primary changes, the value on the secondaries changes accordingly without the need to set the secondaries value explicitly. PRIMARY는 보조에 대한 기본 설정입니다.PRIMARY is the default setting for the secondaries.

IDENTITY_CACHE = { ON | OFF }IDENTITY_CACHE = { ON | OFF }

적용 대상: SQL ServerSQL Server (SQL Server 2017(14.x)SQL Server 2017 (14.x)부터 시작) 및 Azure SQL DatabaseAzure SQL DatabaseAPPLIES TO: SQL ServerSQL Server (Starting with SQL Server 2017(14.x)SQL Server 2017 (14.x)) and Azure SQL DatabaseAzure SQL Database

데이터베이스 수준에서 ID 캐시를 사용하거나 사용하지 않도록 설정합니다.Enables or disables identity cache at the database level. 기본값은 ON입니다.The default is ON. ID 캐싱은 ID 열이 있는 테이블에서 INSERT 성능을 개선하기 위해 사용됩니다.Identity caching is used to improve INSERT performance on tables with identity columns. 서버가 예기치 않게 다시 시작하거나 보조 서버로 장애 조치(failover)되는 경우에 ID 열의 값이 차이 나지 않도록 IDENTITY_CACHE 옵션을 비활성화합니다.To avoid gaps in the values of an identity column in cases where the server restarts unexpectedly or fails over to a secondary server, disable the IDENTITY_CACHE option. 이 옵션은 서버 수준에서만이 아니라 데이터베이스 수준에서 설정될 수 있다는 점을 제외하고 기존 추적 플래그 272와 비슷합니다.This option is similar to the existing Trace Flag 272, except that it can be set at the database level rather than only at the server level.

참고

이 옵션은 기본에 대해서만 설정될 수 있습니다.This option can only be set for the PRIMARY. 자세한 내용은 ID 열을 참조하세요.For more information, see identity columns.

INTERLEAVED_EXECUTION_TVF = { ON | OFF }INTERLEAVED_EXECUTION_TVF = { ON | OFF }

적용 대상: SQL ServerSQL Server (SQL Server 2017(14.x)SQL Server 2017 (14.x)부터 시작) 및 Azure SQL DatabaseAzure SQL DatabaseAPPLIES TO: SQL ServerSQL Server (Starting with SQL Server 2017(14.x)SQL Server 2017 (14.x)) and Azure SQL DatabaseAzure SQL Database

데이터베이스 호환성 수준 140 이상을 유지하면서 데이터베이스 또는 명령문 범위에서 다중 명령문 테이블 값 함수에 대해 인터리브된 실행을 사용하거나 사용하지 않도록 설정할 수 있습니다.Allows you to enable or disable Interleaved execution for multi-statement table-valued functions at the database or statement scope while still maintaining database compatibility level 140 and higher. 인터리브된 실행은 Azure SQL DatabaseAzure SQL Database의 적응 쿼리 처리의 일부인 기능입니다.Interleaved execution is a feature that is part of Adaptive query processing in Azure SQL DatabaseAzure SQL Database. 자세한 내용은 지능형 쿼리 처리를 참조하세요.For more information, please refer to Intelligent query processing.

참고

데이터베이스 호환성 수준 130 이하의 경우, 이 데이터베이스 범위 구성에 아무런 영향이 없습니다.For database compatibility level 130 or lower, this database scoped configuration has no effect.

SQL Server 2017(14.x)에서만 INTERLEAVED_EXECUTION_TVF 옵션에 DISABLE_INTERLEAVED_EXECUTION_TVF의 이전 이름이 있었습니다.In SQL Server 2017 (14.x) only, the option INTERLEAVED_EXECUTION_TVF had the older name of DISABLE_INTERLEAVED_EXECUTION_TVF.

BATCH_MODE_MEMORY_GRANT_FEEDBACK = { ON | OFF}BATCH_MODE_MEMORY_GRANT_FEEDBACK = { ON | OFF}

적용 대상: SQL ServerSQL Server (SQL Server 2017(14.x)SQL Server 2017 (14.x)부터 시작) 및 Azure SQL DatabaseAzure SQL DatabaseAPPLIES TO: SQL ServerSQL Server (Starting with SQL Server 2017(14.x)SQL Server 2017 (14.x)) and Azure SQL DatabaseAzure SQL Database

데이터베이스 호환성 수준 140 이상을 유지하면서 데이터베이스 범위에서 일괄 처리 모드 메모리 부여 피드백을 사용하거나 사용하지 않도록 설정할 수 있습니다.Allows you to enable or disable batch mode memory grant feedback at the database scope while still maintaining database compatibility level 140 and higher. 일괄 처리 모드 메모리 부여 피드백은 SQL Server 2017(14.x)SQL Server 2017 (14.x)에 도입된 지능형 쿼리 처리의 일부 기능입니다.Batch mode memory grant feedback a feature that is part of Intelligent query processing introduced in SQL Server 2017(14.x)SQL Server 2017 (14.x).

참고

데이터베이스 호환성 수준 130 이하의 경우, 이 데이터베이스 범위 구성에 아무런 영향이 없습니다.For database compatibility level 130 or lower, this database scoped configuration has no effect.

BATCH_MODE_ADAPTIVE_JOINS = { ON | OFF}BATCH_MODE_ADAPTIVE_JOINS = { ON | OFF}

적용 대상: SQL ServerSQL Server (SQL Server 2017(14.x)SQL Server 2017 (14.x)부터 시작) 및 Azure SQL DatabaseAzure SQL DatabaseAPPLIES TO: SQL ServerSQL Server (Starting with SQL Server 2017(14.x)SQL Server 2017 (14.x)) and Azure SQL DatabaseAzure SQL Database

데이터베이스 호환성 수준 140 이상을 유지하면서 데이터베이스 범위에서 일괄 처리 모드 적응형 조인을 사용하거나 사용하지 않도록 설정할 수 있습니다.Allows you to enable or disable batch mode adaptive joins at the database scope while still maintaining database compatibility level 140 and higher. 일괄 처리 모드 적응형 조인은 SQL Server 2017(14.x)SQL Server 2017 (14.x)에 도입된 지능형 쿼리 처리의 일부 기능입니다.Batch mode adaptive joins is a feature that is part of Intelligent query processing introduced in SQL Server 2017(14.x)SQL Server 2017 (14.x).

참고

데이터베이스 호환성 수준 130 이하의 경우, 이 데이터베이스 범위 구성에 아무런 영향이 없습니다.For database compatibility level 130 or lower, this database scoped configuration has no effect.

TSQL_SCALAR_UDF_INLINING = { ON | OFF }TSQL_SCALAR_UDF_INLINING = { ON | OFF }

적용 대상: SQL ServerSQL Server (SQL Server 2019 (15.x)SQL Server 2019 (15.x)부터 시작) 및 Azure SQL DatabaseAzure SQL Database(기능은 공개 미리 보기 상태)APPLIES TO: SQL ServerSQL Server (Starting with SQL Server 2019 (15.x)SQL Server 2019 (15.x)) and Azure SQL DatabaseAzure SQL Database (feature is in public preview)

데이터베이스 호환성 수준 150 이상을 유지하면서 데이터베이스 범위에서 T-SQL Scalar UDF 인라인을 활성화하거나 비활성화할 수 있습니다.Allows you to enable or disable T-SQL Scalar UDF inlining at the database scope while still maintaining database compatibility level 150 and higher. T-SQL Scalar UDF 인라인은 인텔리전트 쿼리 처리 기능 제품군의 일부입니다.T-SQL Scalar UDF inlining is part of the Intelligent query processing feature family.

참고

데이터베이스 호환성 수준 140 이하의 경우, 이 데이터베이스 범위 구성에 아무런 영향이 없습니다.For database compatibility level 140 or lower, this database scoped configuration has no effect.

ELEVATE_ONLINE = { OFF | WHEN_SUPPORTED | FAIL_UNSUPPORTED }ELEVATE_ONLINE = { OFF | WHEN_SUPPORTED | FAIL_UNSUPPORTED }

적용 대상: Azure SQL DatabaseAzure SQL Database(기능은 퍼블릭 미리 보기 상태임)APPLIES TO: Azure SQL DatabaseAzure SQL Database (feature is in public preview)

엔진이 지원되는 작업의 권한을 online으로 자동 상승시키도록 하는 옵션을 선택할 수 있습니다.Allows you to select options to cause the engine to automatically elevate supported operations to online. 기본값은 OFF, 즉 명령문에 지정되지 않은 경우 작업의 권한이 online으로 상승하지 않는 것입니다.The default is OFF, which means operations will not be elevated to online unless specified in the statement. sys.database_scoped_configurations는 ELEVATE_ONLINE의 현재 값을 나타냅니다.sys.database_scoped_configurations reflects the current value of ELEVATE_ONLINE. 이러한 옵션은 online에 지원되는 작업에만 적용됩니다.These options will only apply to operations that are supported for online.

FAIL_UNSUPPORTEDFAIL_UNSUPPORTED

이 값은 지원되는 모든 DDL 작업의 권한을 ONLINE으로 상승시킵니다.This value elevates all supported DDL operations to ONLINE. 온라인 실행을 지원하지 않는 작업은 실패하고 경고를 throw합니다.Operations that do not support online execution will fail and throw a warning.

WHEN_SUPPORTEDWHEN_SUPPORTED

이 값은 ONLINE을 지원하는 작업의 권한을 상승시킵니다.This value elevates operations that support ONLINE. 온라인을 지원하지 않는 작업은 오프라인으로 실행됩니다.Operations that do not support online will be run offline.

참고

ONLINE 옵션이 지정된 명령문을 제출하여 기본 설정을 재정의할 수 있습니다.You can override the default setting by submitting a statement with the ONLINE option specified.

ELEVATE_RESUMABLE= { OFF | WHEN_SUPPORTED | FAIL_UNSUPPORTED }ELEVATE_RESUMABLE= { OFF | WHEN_SUPPORTED | FAIL_UNSUPPORTED }

적용 대상: SQL ServerSQL Server (SQL Server 2019 (15.x)SQL Server 2019 (15.x)부터 시작) 및 Azure SQL DatabaseAzure SQL Database(기능은 공개 미리 보기 상태)APPLIES TO: SQL ServerSQL Server (Starting with SQL Server 2019 (15.x)SQL Server 2019 (15.x)) and Azure SQL DatabaseAzure SQL Database (feature is in public preview)

엔진이 지원되는 작업의 권한을 resumable로 자동 상승시키도록 하는 옵션을 선택할 수 있습니다.Allows you to select options to cause the engine to automatically elevate supported operations to resumable. 기본값은 OFF, 즉 명령문에 지정되지 않은 경우 작업의 권한이 resumable로 상승되지 않는 것입니다.The default is OFF, which means operations are not be elevated to resumable unless specified in the statement. sys.database_scoped_configurations는 ELEVATE_ELEVATE_RESUMABLE의 현재 값을 나타냅니다.sys.database_scoped_configurations reflects the current value of ELEVATE_RESUMABLE. 이러한 옵션은 resumable에 지원되는 작업에만 적용됩니다.These options only apply to operations that are supported for resumable.

FAIL_UNSUPPORTEDFAIL_UNSUPPORTED

이 값은 지원되는 모든 DDL 작업의 권한을 RESUMABLE로 상승시킵니다.This value elevates all supported DDL operations to RESUMABLE. 다시 시작 가능한 실행을 지원하지 않는 작업은 실패하고 경고를 throw합니다.Operations that do not support resumable execution fail and throw a warning.

WHEN_SUPPORTEDWHEN_SUPPORTED

이 값은 RESUMABLE을 지원하는 작업의 권한을 상승시킵니다.This value elevates operations that support RESUMABLE. resumable을 지원하지 않는 작업은 다시 시작 가능하지 않은 방식으로 실행됩니다.Operations that do not support resumable are run non-resumably.

참고

RESUMABLE 옵션이 지정된 명령문을 제출하여 기본 설정을 재정의할 수 있습니다.You can override the default setting by submitting a statement with the RESUMABLE option specified.

OPTIMIZE_FOR_AD_HOC_WORKLOADS = { ON | OFF }OPTIMIZE_FOR_AD_HOC_WORKLOADS = { ON | OFF }

적용 대상: Azure SQL DatabaseAzure SQL DatabaseAPPLIES TO: Azure SQL DatabaseAzure SQL Database

일괄 처리가 처음으로 컴파일될 때 캐시에 저장될 컴파일된 계획 스텁을 사용하거나 사용하지 않도록 설정합니다.Enables or disables a compiled plan stub to be stored in cache when a batch is compiled for the first time. 기본값은 OFF입니다.The default is OFF. 데이터베이스 범위 구성 OPTIMIZE_FOR_AD_HOC_WORKLOADS가 데이터베이스에 대해 활성화되면 컴파일된 계획 스텁은 일괄 처리가 처음으로 컴파일될 때 캐시에 저장됩니다.Once the database scoped configuration OPTIMIZE_FOR_AD_HOC_WORKLOADS is enabled for a database, a compiled plan stub will be stored in cache when a batch is compiled for the first time. 계획 스텁은 전체 컴파일된 계획의 크기에 비해 작은 메모리 사용 공간을 갖습니다.Plan stubs have a smaller memory footprint compared to the size of the full compiled plan. 일괄 처리가 컴파일되거나 다시 실행되는 경우 컴파일된 계획 스텁은 제거되고 전체 컴파일된 계획으로 대체됩니다.If a batch is compiled or executed again, the compiled plan stub will be removed and replaced with a full compiled plan.

XTP_PROCEDURE_EXECUTION_STATISTICS = { ON | OFF }XTP_PROCEDURE_EXECUTION_STATISTICS = { ON | OFF }

적용 대상: Azure SQL DatabaseAzure SQL DatabaseAPPLIES TO: Azure SQL DatabaseAzure SQL Database

현재 데이터베이스에 있는 고유하게 컴파일된 T-SQL 모듈에 대한 모듈 수준 실행 통계 수집을 활성화하거나 비활성화합니다.Enables or disables collection of execution statistics at the module-level for natively compiled T-SQL modules in the current database. 기본값은 OFF입니다.The default is OFF. 실행 통계는 sys.dm_exec_procedure_stats에 반영됩니다.The execution statistics are reflected in sys.dm_exec_procedure_stats.

고유하게 컴파일된 T-SQL 모듈에 대한 모듈 수준 실행 통계는 이 옵션이 켜져 있거나 통계 수집이 sp_xtp_control_proc_exec_stats를 통해 활성화된 경우 수집됩니다.Module-level execution statistics for natively compiled T-SQL modules are collected if either this option is ON, or if statistics collection is enabled through sp_xtp_control_proc_exec_stats.

XTP_QUERY_EXECUTION_STATISTICS = { ON | OFF }XTP_QUERY_EXECUTION_STATISTICS = { ON | OFF }

적용 대상: Azure SQL DatabaseAzure SQL DatabaseAPPLIES TO: Azure SQL DatabaseAzure SQL Database

현재 데이터베이스에 있는 고유하게 컴파일된 T-SQL 모듈에 대한 명령문 수준 실행 통계 수집을 활성화하거나 비활성화합니다.Enables or disables collection of execution statistics at the statement-level for natively compiled T-SQL modules in the current database. 기본값은 OFF입니다.The default is OFF. 실행 통계는 sys.dm_exec_query_stats쿼리 저장소에 반영됩니다.The execution statistics are reflected in sys.dm_exec_query_stats and in Query Store.

고유하게 컴파일된 T-SQL 모듈에 대한 명령문 수준 실행 통계는 이 옵션이 켜져 있거나 통계 수집이 sp_xtp_control_query_exec_stats를 통해 활성화된 경우 수집됩니다.Statement-level execution statistics for natively compiled T-SQL modules are collected if either this option is ON, or if statistics collection is enabled through sp_xtp_control_query_exec_stats.

고유하게 컴파일된 Transact-SQLTransact-SQL 모듈의 성능 모니터링에 대한 자세한 내용은 고유하게 컴파일된 저장 프로시저의 성능 모니터링을 참조하세요.For more information about performance monitoring of natively compiled Transact-SQLTransact-SQL modules see Monitoring Performance of Natively Compiled Stored Procedures.

ROW_MODE_MEMORY_GRANT_FEEDBACK = { ON | OFF}ROW_MODE_MEMORY_GRANT_FEEDBACK = { ON | OFF}

적용 대상: SQL ServerSQL Server (SQL Server 2019 (15.x)SQL Server 2019 (15.x)부터 시작) 및 Azure SQL DatabaseAzure SQL Database(기능은 공개 미리 보기 상태)APPLIES TO: SQL ServerSQL Server (Starting with SQL Server 2019 (15.x)SQL Server 2019 (15.x)) and Azure SQL DatabaseAzure SQL Database (feature is in public preview)

데이터베이스 호환성 수준 150 이상을 유지하면서 데이터베이스 범위에서 행 모드 메모리 부여 피드백을 사용하거나 사용하지 않도록 설정할 수 있습니다.Allows you to enable or disable row mode memory grant feedback at the database scope while still maintaining database compatibility level 150 and higher. 행 모드 메모리 부여 피드백은 SQL Server 2017(14.x)SQL Server 2017 (14.x)에 도입된 지능형 쿼리 처리의 일부 기능입니다(행 모드는 SQL Server 2019 (15.x)SQL Server 2019 (15.x)Azure SQL DatabaseAzure SQL Database에서 지원됨).Row mode memory grant feedback a feature that is part of Intelligent query processing introduced in SQL Server 2017(14.x)SQL Server 2017 (14.x) (row mode is supported in SQL Server 2019 (15.x)SQL Server 2019 (15.x) and Azure SQL DatabaseAzure SQL Database).

참고

데이터베이스 호환성 수준 140 이하의 경우, 이 데이터베이스 범위 구성에 아무런 영향이 없습니다.For database compatibility level 140 or lower, this database scoped configuration has no effect.

BATCH_MODE_ON_ROWSTORE = { ON | OFF}BATCH_MODE_ON_ROWSTORE = { ON | OFF}

적용 대상: SQL ServerSQL Server (SQL Server 2019 (15.x)SQL Server 2019 (15.x)부터 시작) 및 Azure SQL DatabaseAzure SQL Database(기능은 공개 미리 보기 상태)APPLIES TO: SQL ServerSQL Server (Starting with SQL Server 2019 (15.x)SQL Server 2019 (15.x)) and Azure SQL DatabaseAzure SQL Database (feature is in public preview)

데이터베이스 호환성 수준 150 이상을 유지하면서 데이터베이스 범위에서 행 저장소의 일괄 처리 모드를 사용하거나 사용하지 않도록 설정할 수 있습니다.Allows you to enable or disable batch mode on rowstore at the database scope while still maintaining database compatibility level 150 and higher. 행 저장소의 일괄 처리 모드는 인텔리전트 쿼리 처리 기능 제품군의 일부 기능입니다.Batch mode on rowstore is a feature that is part of Intelligent query processing feature family.

참고

데이터베이스 호환성 수준 140 이하의 경우, 이 데이터베이스 범위 구성에 아무런 영향이 없습니다.For database compatibility level 140 or lower, this database scoped configuration has no effect.

DEFERRED_COMPILATION_TV = { ON | OFF}DEFERRED_COMPILATION_TV = { ON | OFF}

적용 대상: SQL ServerSQL Server (SQL Server 2019 (15.x)SQL Server 2019 (15.x)부터 시작) 및 Azure SQL DatabaseAzure SQL Database(기능은 공개 미리 보기 상태)APPLIES TO: SQL ServerSQL Server (Starting with SQL Server 2019 (15.x)SQL Server 2019 (15.x)) and Azure SQL DatabaseAzure SQL Database (feature is in public preview)

데이터베이스 호환성 수준 150 이상을 유지하면서 데이터베이스 범위에서 테이블 변수 지연 컴파일을 사용하거나 사용하지 않도록 설정할 수 있습니다.Allows you to enable or disable table variable deferred compilation at the database scope while still maintaining database compatibility level 150 and higher. 테이블 변수 지연 컴파일은 인텔리전트 쿼리 처리 기능 제품군의 일부 기능입니다.Table variable deferred compilation is a feature that is part of Intelligent query processing feature family.

참고

데이터베이스 호환성 수준 140 이하의 경우, 이 데이터베이스 범위 구성에 아무런 영향이 없습니다.For database compatibility level 140 or lower, this database scoped configuration has no effect.

ACCELERATED_PLAN_FORCING = { ON | OFF }ACCELERATED_PLAN_FORCING = { ON | OFF }

적용 대상: SQL ServerSQL Server (SQL Server 2019 (15.x)SQL Server 2019 (15.x)부터 시작)Applies to: SQL ServerSQL Server (Starting with SQL Server 2019 (15.x)SQL Server 2019 (15.x))

쿼리 저장소 계획 강제 적용, 자동 튜닝 또는 USE PLAN 쿼리 힌트 등 모든 형식의 계획 강제에 적용할 수 있는 쿼리 계획 강제 적용에 최적화된 메커니즘을 활성화합니다.Enables an optimized mechanism for query plan forcing, applicable to all forms of plan forcing, such as Query Store Force Plan, Automatic Tuning, or the USE PLAN query hint. 기본값은 ON입니다.The default is ON.

참고

가속화된 계획 강제 적용을 비활성화하는 것은 권장하지 않습니다.It is not recommended to disable accelerated plan forcing.

GLOBAL_TEMPORARY_TABLE_AUTO_DROP = { ON | OFF }GLOBAL_TEMPORARY_TABLE_AUTO_DROP = { ON | OFF }

적용 대상: Azure SQL DatabaseAzure SQL Database(기능은 퍼블릭 미리 보기 상태임)APPLIES TO: Azure SQL DatabaseAzure SQL Database (feature is in public preview)

전역 임시 테이블에 대한 자동 삭제 기능을 설정할 수 있습니다.Allows setting the auto-drop functionality for global temporary tables. 기본값은 ON입니다. 이는 전역 임시 테이블이 세션에서 사용되지 않을 때 자동으로 삭제됨을 의미합니다.The default is ON, which means that the global temporary tables are automatically dropped when not in use by any session. OFF로 설정하면 DROP TABLE 문을 사용하여 전역 임시 테이블을 명시적으로 삭제하거나 서버를 다시 시작할 때 자동으로 삭제됩니다.When set to OFF, global temporary tables need to be explicitly dropped using a DROP TABLE statement or will be automatically dropped on server restart.

  • Azure SQL DatabaseAzure SQL Database 단일 데이터베이스와 탄력적 풀을 사용하면 SQL Database 서버의 개별 사용자 데이터베이스에서 이 옵션을 설정할 수 있습니다.With Azure SQL DatabaseAzure SQL Database single databases and elastic pools, this option can be set in the individual user databases of the SQL Database server.
  • SQL ServerSQL Server 및 Azure SQL Managed Instance에서 이 옵션은 TempDB에 설정되며 개별 사용자 데이터베이스의 설정은 영향을 미치지 않습니다.In SQL ServerSQL Server and Azure SQL Managed Instance, this option is set in TempDB and the setting of the individual user databases has no effect.

LIGHTWEIGHT_QUERY_PROFILING = { ON | OFF}LIGHTWEIGHT_QUERY_PROFILING = { ON | OFF}

적용 대상: SQL ServerSQL Server (SQL Server 2019 (15.x)SQL Server 2019 (15.x)부터 시작) 및 Azure SQL DatabaseAzure SQL DatabaseAPPLIES TO: SQL ServerSQL Server (Starting with SQL Server 2019 (15.x)SQL Server 2019 (15.x)) and Azure SQL DatabaseAzure SQL Database

간단한 쿼리 프로파일링 인프라를 활성화하거나 비활성화할 수 있습니다.Allows you to enable or disable the lightweight query profiling infrastructure. LWP(간단한 쿼리 프로파일링 인프라)는 표준 프로파일링 매커니즘보다 쿼리 성능 데이터를 더 효율적으로 제공하며 기본적으로 활성화되어 있습니다.The lightweight query profiling infrastructure (LWP) provides query performance data more efficiently than standard profiling mechanisms and is enabled by default.

VERBOSE_TRUNCATION_WARNINGS = { ON | OFF}VERBOSE_TRUNCATION_WARNINGS = { ON | OFF}

적용 대상: SQL ServerSQL Server (SQL Server 2019 (15.x)SQL Server 2019 (15.x)부터 시작) 및 Azure SQL DatabaseAzure SQL DatabaseAPPLIES TO: SQL ServerSQL Server (Starting with SQL Server 2019 (15.x)SQL Server 2019 (15.x)) and Azure SQL DatabaseAzure SQL Database

String or binary data would be truncated 오류 메시지를 사용하거나 사용하지 않도록 설정할 수 있습니다.Allows you to enable or disable the new String or binary data would be truncated error message. SQL Server 2019 (15.x)SQL Server 2019 (15.x)에서는 이 시나리오에 대해 보다 구체적인 새 오류 메시지(2628)를 제공합니다.introduces a new, more specific error message (2628) for this scenario:

String or binary data would be truncated in table '%.*ls', column '%.*ls'. Truncated value: '%.*ls'.

데이터베이스 호환성 수준 150에서 ON으로 설정하면 잘림 오류로 인해 더 많은 컨텍스트를 제공하고 문제 해결 프로세스를 간소화하기 위해 오류 메시지 2628이 발생합니다.When set to ON under database compatibility level 150, truncation errors raise the new error message 2628 to provide more context and simplify the troubleshooting process.

데이터베이스 호환성 수준 150 OFF로 설정하면 잘림 오류로 인해 이전 오류 메시지 8152가 발생합니다.When set to OFF under database compatibility level 150, truncation errors raise the previous error message 8152.

데이터베이스 호환성 수준 140 이하의 경우 오류 메시지 2628은 추적 플래그 460을 사용하도록 설정해야 하는 옵트인 오류 메지시로 남아 있으며, 이 데이터베이스 범위 구성에 영향을 주지 않습니다.For database compatibility level 140 or lower, error message 2628 remains an opt-in error message that requires trace flag 460 to be enabled, and this database scoped configuration has no effect.

LAST_QUERY_PLAN_STATS = { ON | OFF}LAST_QUERY_PLAN_STATS = { ON | OFF}

적용 대상: SQL ServerSQL Server(SQL Server 2019 (15.x)SQL Server 2019 (15.x)부터 시작)(기능은 공개 미리 보기 상태임)APPLIES TO: SQL ServerSQL Server (Starting with SQL Server 2019 (15.x)SQL Server 2019 (15.x)) (feature is in public preview)

sys.dm_exec_query_plan_stats에서 마지막 쿼리 계획 통계(실제 실행 계획과 동일)의 수집을 활성화하거나 비활성화할 수 있습니다.Allows you to enable or disable collection of the last query plan statistics (equivalent to an actual execution plan) in sys.dm_exec_query_plan_stats.

PAUSED_RESUMABLE_INDEX_ABORT_DURATION_MINUTESPAUSED_RESUMABLE_INDEX_ABORT_DURATION_MINUTES

적용 대상: Azure SQL Database만 해당APPLIES TO: Azure SQL Database only

PAUSED_RESUMABLE_INDEX_ABORT_DURATION_MINUTES 옵션은 엔진에 의해 자동으로 중단되기 전에 다시 시작 가능한 인덱스가 일시 중지되는 시간(분)을 결정합니다.The PAUSED_RESUMABLE_INDEX_ABORT_DURATION_MINUTES option determines how long (in minutes) the resumable index is being paused before being automatically aborted by the engine.

  • 기본값은 1일(1440분)로 설정됩니다.The default value is set to 1 day (1440 minutes)
  • 최소 지속 시간은 1분으로 설정됩니다.The minimum duration is set to 1 minute
  • 최대 기간은 71582분입니다.The maximum duration is 71582 minutes
  • 0으로 설정하면 일시 중지된 작업이 자동으로 중단되지 않습니다.When set to 0, a paused operation will never automatically abort

이 옵션의 현재 값은 database_scoped_configurations에 표시됩니다.The current value for this option is displayed in sys.database_scoped_configurations.

ISOLATE_SECURITY_POLICY_CARDINALITY = { ON | OFF}ISOLATE_SECURITY_POLICY_CARDINALITY = { ON | OFF}

적용 대상: SQL ServerSQL Server (SQL Server 2019 (15.x)SQL Server 2019 (15.x)부터 시작) 및 Azure SQL DatabaseAzure SQL DatabaseAPPLIES TO: SQL ServerSQL Server (Starting with SQL Server 2019 (15.x)SQL Server 2019 (15.x)) and Azure SQL DatabaseAzure SQL Database

RLS(행 수준 보안) 조건자가 전체 사용자 쿼리 실행 계획의 카디널리티에 영향을 주는지 아닌지를 제어할 수 있습니다.Allows you to control whether a Row-Level Security (RLS) predicate affects the cardinality of the execution plan of the overall user query. ISOLATE_SECURITY_POLICY_CARDINALITY가 ON이면 RLS 조건자는 실행 계획의 카디널리티에 영향을 주지 않습니다.When ISOLATE_SECURITY_POLICY_CARDINALITY is ON, an RLS predicate does not affect the cardinality of an execution plan. 예를 들어 쿼리를 실행하는 특정 사용자에 대해 결과를 10개 행으로 제한하는 RLS 조건자와 100만 개의 행이 포함된 테이블이 있다고 가정합니다.For example, consider a table containing 1 million rows and an RLS predicate that restricts the result to 10 rows for a specific user issuing the query. 이 데이터베이스 범위 구성을 OFF로 설정할 경우 이 조건자의 예상 카디널리티는 10이 됩니다.With this database scoped configuration set to OFF, the cardinality estimate of this predicate will be 10. 이 데이터베이스 범위 구성이 ON이면 쿼리 최적화는 100만 개의 행을 추정합니다.When this database scoped configuration is ON, query optimization will estimate 1 million rows. 대부분의 워크로드에는 기본값을 사용하는 것이 좋습니다.It is recommended to use the default value for most workloads.

DW_COMPATIBILITY_LEVEL = {AUTO | 10 | 20 }DW_COMPATIBILITY_LEVEL = {AUTO | 10 | 20 }

적용 대상: Azure Synapse Analytics만(이전의 SQL DW)APPLIES TO: Azure Synapse Analytics only (Formerly SQL DW)

지정된 버전의 데이터베이스 엔진과 호환되도록 Transact-SQL 및 쿼리 처리 동작을 설정합니다.Sets Transact-SQL and query processing behaviors to be compatible with the specified version of the database engine. 설정하고 나면, 해당 데이터베이스에서 쿼리를 실행할 때 호환되는 기능만 실행됩니다.Once it's set, when a query is executed on that database, only the compatible features will be exercised. 처음 만들 때는 데이터베이스의 호환성 수준이 기본적으로 AUTO로 설정됩니다.A database's compatibility level is set to AUTO by default when it's first created. 호환성 수준은 데이터베이스 일시 중지/다시 시작, 백업/복원 작업 후에도 유지됩니다.The compatibility level is preserved even after database pause/resume, backup/restore operations.

호환성 수준Compatibility Level 주석Comments
AUTOAUTO 기본값Default. 해당 값은 Synapse Analytics 엔진에 의해 자동으로 업데이트됩니다.Its value is automatically updated by the Synapse Analytics engine. 현재 값은 20입니다.The current value is 20.
1010 호환성 수준 지원이 도입되기 전의 Transact-SQL 및 쿼리 처리 동작을 실행합니다.Exercises the Transact-SQL and query processing behaviors before the introduction of compatibility level support.
2020 제어된 Transact-SQL 및 쿼리 처리 동작을 포함하는 첫 번째 호환성 수준입니다.1st compatibility level that includes gated Transact-SQL and query processing behaviors.

ASYNC_STATS_UPDATE_WAIT_AT_LOW_PRIORITY = { ON | OFF}ASYNC_STATS_UPDATE_WAIT_AT_LOW_PRIORITY = { ON | OFF}

적용 대상: Azure SQL Database만(공개 미리 보기로 제공되는 기능)APPLIES TO: Azure SQL Database only (feature is in public preview)

비동기 통계 업데이트를 사용하는 경우 이 구성을 사용하도록 설정하면 백그라운드 통계 업데이트 요청이 낮은 우선 순위의 큐에 대한 Sch-M 잠금을 대기하여 높은 동시성 시나리오에서 다른 세션을 차단하지 않도록 합니다.If asynchronous statistics update is enabled, enabling this configuration will cause the background request updating statistics to wait for a Sch-M lock on a low priority queue, to avoid blocking other sessions in high concurrency scenarios. 자세한 내용은 AUTO_UPDATE_STATISTICS_ASYNC를 참조하세요.For more information, see AUTO_UPDATE_STATISTICS_ASYNC.

권한Permissions

데이터베이스에 ALTER ANY DATABASE SCOPED CONFIGURATION이 필요합니다.Requires ALTER ANY DATABASE SCOPED CONFIGURATION on the database. 이 사용 권한은 데이터베이스에서 CONTROL 권한이 있는 사용자에 의해 부여될 수 있습니다.This permission can be granted by a user with CONTROL permission on a database.

일반적인 주의 사항General Remarks

보조 데이터베이스가 해당 기본 데이터베이스와 서로 다른 범위 구성 설정을 갖도록 구성할 수도 있지만 모든 보조 데이터베이스는 동일한 구성을 사용합니다.While you can configure secondary databases to have different scoped configuration settings from their primary, all secondary databases use the same configuration. 개별 보조에 대해 서로 다른 설정을 구성할 수 없습니다.Different settings cannot be configured for individual secondaries.

이 명령문을 실행하면 현재 데이터베이스에서 프로시저 캐시를 지웁니다. 즉, 모든 쿼리를 다시 컴파일해야 합니다.Executing this statement clears the procedure cache in the current database, which means that all queries have to recompile.

3부분으로 된 이름 쿼리의 경우 다른 데이터베이스 컨텍스트에서 컴파일되는 SQL 모듈(예: 프로시저, 함수, 트리거)이 아닌 쿼리의 현재 데이터베이스 연결에 대한 설정이 적용되므로 존재하는 데이터베이스의 옵션을 사용합니다.For 3-part name queries, the settings for the current database connection for the query are honored, other than for SQL modules (such as procedures, functions, and triggers) that are compiled in another database context and therefore use the options of the database in which they reside. 마찬가지로 통계를 비동기적으로 업데이트할 때 통계가 있는 데이터베이스에 대한 ASYNC_STATS_UPDATE_WAIT_AT_LOW_PRIORITY 설정이 적용됩니다.Similarly, when updating statistics asynchronously, the setting of ASYNC_STATS_UPDATE_WAIT_AT_LOW_PRIORITY for the database where statistics reside is honored.

ALTER_DATABASE_SCOPED_CONFIGURATION 이벤트는 DDL 트리거를 시작하는 데 사용할 수 있는 DDL 이벤트로 추가되며 ALTER_DATABASE_EVENTS 트리거 그룹의 자식입니다.The ALTER_DATABASE_SCOPED_CONFIGURATION event is added as a DDL event that can be used to fire a DDL trigger, and is a child of the ALTER_DATABASE_EVENTS trigger group.

데이터베이스 범위 구성 설정은 데이터베이스와 함께 전달됩니다. 이는 지정된 데이터베이스가 복원되거나 첨부될 때 기존 구성 설정이 그대로 유지됨을 의미합니다.Database scoped configuration settings will be carried over with the database, which means that when a given database is restored or attached, the existing configuration settings remain.

Azure SQL DatabaseAzure SQL Database부터 및 SQL Server 2019 (15.x)SQL Server 2019 (15.x)에서 일부 옵션 이름이 변경되었습니다.Starting with SQL Server 2019 (15.x)SQL Server 2019 (15.x) and in Azure SQL DatabaseAzure SQL Database, some option names have changed:

  • DISABLE_INTERLEAVED_EXECUTION_TVFINTERLEAVED_EXECUTION_TVF로 변경됨DISABLE_INTERLEAVED_EXECUTION_TVF changed to INTERLEAVED_EXECUTION_TVF
  • DISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACKBATCH_MODE_MEMORY_GRANT_FEEDBACK로 변경됨DISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACK changed to BATCH_MODE_MEMORY_GRANT_FEEDBACK
  • DISABLE_BATCH_MODE_ADAPTIVE_JOINSBATCH_MODE_ADAPTIVE_JOINS로 변경됨DISABLE_BATCH_MODE_ADAPTIVE_JOINS changed to BATCH_MODE_ADAPTIVE_JOINS

제한 사항Limitations and Restrictions

MAXDOPMAXDOP

세부적인 설정은 전역 설정을 재정의하고 해당 리소스 관리자(resource governor)는 다른 모든 MAXDOP 설정을 제한할 수 있습니다.The granular settings can override the global ones and that resource governor can cap all other MAXDOP settings. MAXDOP 설정에 대한 논리는 다음과 같습니다.The logic for MAXDOP setting is the following:

  • 쿼리 힌트는 sp_configure와 데이터베이스 범위 구성 모두를 재정의합니다.Query hint overrides both the sp_configure and the database scoped configuration. 리소스 그룹 MAXDOP가 작업 그룹에 대해 설정된 경우:If the resource group MAXDOP is set for the workload group:

    • 쿼리 힌트가 제로(0)로 설정된 경우 리소스 관리자(resource governor) 설정에 의해 재정의됩니다.If the query hint is set to zero (0), it is overridden by the resource governor setting.

    • 쿼리 힌트가 제로(0)가 아닌 경우 리소스 관리자(resource governor) 설정에 의해 제한됩니다.If the query hint is not zero (0), it is capped by the resource governor setting.

  • 데이터베이스 범위 구성(0이 아닌 경우)은 쿼리 힌트가 있고 리소스 관리자(resource governor) 설정에 의해 제한되지 않는 한 sp_configure 설정을 재정의합니다.The database scoped configuration (unless it's zero) overrides the sp_configure setting unless there is a query hint and is capped by the resource governor setting.

  • sp_configure 설정은 리소스 관리자(resource governor) 설정에 의해 재정의됩니다.The sp_configure setting is overridden by the resource governor setting.

QUERY_OPTIMIZER_HOTFIXESQUERY_OPTIMIZER_HOTFIXES

QUERYTRACEON 힌트가 SQL Server 2012(11.x)SQL Server 2012 (11.x) 버전 또는 쿼리 최적화 프로그램 또는 쿼리 SQL Server 7.0의 기본 쿼리 프로그램을 활성화하는 데 사용되는 경우 쿼리 힌트와 데이터베이스 범위 구성 설정 간의 OR 조건이 됩니다. 즉, 둘 중 하나가 활성화되면 데이터베이스 범위 구성이 적용됩니다.When QUERYTRACEON hint is used to enable the default query optimizer of SQL Server 7.0 through SQL Server 2012(11.x)SQL Server 2012 (11.x) versions or query optimizer hotfixes, it would be an OR condition between the query hint and the database scoped configuration setting, meaning if either is enabled, the database scoped configurations apply.

Geo DRGeo DR

읽기 가능한 보조 데이터베이스(Always On 가용성 그룹 및 Azure SQL DatabaseAzure SQL Database 지역 복제 데이터베이스)는 데이터베이스의 상태를 확인하여 보조 값을 사용합니다.Readable secondary databases (Always On Availability Groups and Azure SQL DatabaseAzure SQL Database geo-replicated databases), use the secondary value by checking the state of the database. 재컴파일이 장애 조치(failover)에서 발생하지 않고 기술적으로 새로운 기본에 보조 설정을 사용하는 쿼리가 있더라도 기본 및 보조 간의 설정은 워크로드가 다른 경우에만 다르기 때문에 캐시된 쿼리는 최적의 설정을 사용하는 반면 새로운 쿼리는 적절한 새 설정을 선택합니다.Even though recompile does not occur on failover and technically the new primary has queries that are using the secondary settings, the idea is that the setting between primary and secondary only vary when the workload is different and therefore the cached queries are using the optimal settings, whereas new queries pick the new settings that are appropriate for them.

DacFxDacFx

ALTER DATABASE SCOPED CONFIGURATION은 데이터베이스 스키마에 영향을 주는 Azure SQL DatabaseAzure SQL DatabaseSQL ServerSQL Server (SQL Server 2016(13.x)SQL Server 2016 (13.x)부터 시작)의 새 기능이므로 스키마(데이터 유무에 상관없이)를 SQL ServerSQL Server의 이전 버전(예: SQL Server 2012(11.x)SQL Server 2012 (11.x) 또는 SQL Server 2014(12.x)SQL Server 2014 (12.x))으로 내보낼 수 없습니다.Since ALTER DATABASE SCOPED CONFIGURATION is a new feature in Azure SQL DatabaseAzure SQL Database and SQL ServerSQL Server (starting with SQL Server 2016(13.x)SQL Server 2016 (13.x)) that affects the database schema, exports of the schema (with or without data) are not able to be imported into an older version of SQL ServerSQL Server, such as SQL Server 2012(11.x)SQL Server 2012 (11.x) or SQL Server 2014(12.x)SQL Server 2014 (12.x). 예를 들어 이 새로운 기능이 사용되는 SQL DatabaseSQL Database 또는 SQL Server 2016(13.x)SQL Server 2016 (13.x) 데이터베이스에서 DACPAC 또는 BACPAC로 내보내기를 하위 수준 서버로 가져올 수 없게 됩니다.For example, an export to a DACPAC or a BACPAC from an SQL DatabaseSQL Database or SQL Server 2016(13.x)SQL Server 2016 (13.x) database that used this new feature would not be able to be imported into a down-level server.

ELEVATE_ONLINEELEVATE_ONLINE

이 옵션은 WITH (ONLINE = <syntax>)를 지원하는 DDL 문에만 적용됩니다.This option only applies to DDL statements that support the WITH (ONLINE = <syntax>). XML 인덱스는 영향을 받지 않습니다.XML indexes are not affected.

ELEVATE_RESUMABLEELEVATE_RESUMABLE

이 옵션은 WITH (RESUMABLE = <syntax>)를 지원하는 DDL 문에만 적용됩니다.This option only applies to DDL statements that support the WITH (RESUMABLE = <syntax>). XML 인덱스는 영향을 받지 않습니다.XML indexes are not affected.

메타데이터Metadata

sys.database_scoped_configurations (Transact-SQL) 시스템 뷰는 데이터베이스 내에서 범위 구성에 대한 정보를 제공합니다.The sys.database_scoped_configurations (Transact-SQL) system view provides information about scoped configurations within a database. 데이터베이스 범위 구성 옵션은 서버 차원의 기본 설정으로 재정의되면 sys.database_scoped_configurations에 나타납니다.Database-scoped configuration options only show up in sys.database_scoped_configurations as they are overrides to server-wide default settings. sys.configurations (Transact-SQL) 시스템 뷰는 서버 차원의 설정을 표시합니다.The sys.configurations (Transact-SQL) system view only shows server-wide settings.

예제Examples

이 예제에서는 ALTER DATABASE SCOPED CONFIGURATION의 사용을 보여 줍니다.These examples demonstrate the use of ALTER DATABASE SCOPED CONFIGURATION

A.A. 사용 권한 부여Grant Permission

이 예제에서는 ALTER DATABASE SCOPED CONFIGURATION을 실행하는 데 필요한 사용 권한을 사용자 Joe에게 부여합니다.This example grant permission required to execute ALTER DATABASE SCOPED CONFIGURATION to user Joe.

GRANT ALTER ANY DATABASE SCOPED CONFIGURATION to [Joe] ;

B.B. MAXDOP 설정Set MAXDOP

이 예제는 지역에서 복제 시나리오에서 기본 데이터베이스에 대해 MAXDOP = 1을 설정하고 보조 데이터베이스에 대해 MAXDOP = 4를 설정합니다.This example sets MAXDOP = 1 for a primary database and MAXDOP = 4 for a secondary database in a geo-replication scenario.

ALTER DATABASE SCOPED CONFIGURATION SET MAXDOP = 1 ;
ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET MAXDOP = 4 ;

이 예제는 지역에서 복제 시나리오에서 해당 기본 데이터베이스에 대해 설정된 것과 동일하도록 보조 데이터베이스에 대한 MAXDOP를 설정합니다.This example sets MAXDOP for a secondary database to be the same as it is set for its primary database in a geo-replication scenario.

ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET MAXDOP = PRIMARY ;

C.C. LEGACY_CARDINALITY_ESTIMATION 설정Set LEGACY_CARDINALITY_ESTIMATION

이 예제는 지역에서 복제 시나리오에서 보조 데이터베이스에 대해 LEGACY_CARDINALITY_ESTIMATION을 ON으로 설정합니다.This example sets LEGACY_CARDINALITY_ESTIMATION to ON for a secondary database in a geo-replication scenario.

ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET LEGACY_CARDINALITY_ESTIMATION = ON ;

이 예제는 지역에서 복제 시나리오에서 해당 기본 데이터베이스에 대해 설정된 것으로 보조 데이터베이스에 대해 LEGACY_CARDINALITY_ESTIMATION을 설정합니다.This example sets LEGACY_CARDINALITY_ESTIMATION for a secondary database as it is for its primary database in a geo-replication scenario.

ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET LEGACY_CARDINALITY_ESTIMATION = PRIMARY ;

D.D. PARAMETER_SNIFFING 설정Set PARAMETER_SNIFFING

이 예제는 지역에서 복제 시나리오에서 기본 데이터베이스에 대해 PARAMETER_SNIFFING을 OFF로 설정합니다.This example sets PARAMETER_SNIFFING to OFF for a primary database in a geo-replication scenario.

ALTER DATABASE SCOPED CONFIGURATION SET PARAMETER_SNIFFING = OFF ;

이 예제는 지역에서 복제 시나리오에서 보조 데이터베이스에 대해 PARAMETER_SNIFFING을 OFF로 설정합니다.This example sets PARAMETER_SNIFFING to OFF for a secondary database in a geo-replication scenario.

ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET PARAMETER_SNIFFING = OFF ;

이 예제는 지역에서 복제 시나리오에서 보조 데이터베이스에 대한 PARAMETER_SNIFFING을 기본 데이터베이스에 대한 것으로 설정합니다.This example sets PARAMETER_SNIFFING for secondary database as it is on primary database in a geo-replication scenario.

ALTER DATABASE SCOPED CONFIGURATION FOR SECONDARY SET PARAMETER_SNIFFING = PRIMARY ;

E.E. QUERY_OPTIMIZER_HOTFIXES 설정Set QUERY_OPTIMIZER_HOTFIXES

지역에서 복제 시나리오에서 기본 데이터베이스에 대해 QUERY_OPTIMIZER_HOTFIXES를 ON으로 설정합니다.Set QUERY_OPTIMIZER_HOTFIXES to ON for a primary database in a geo-replication scenario.

ALTER DATABASE SCOPED CONFIGURATION SET QUERY_OPTIMIZER_HOTFIXES = ON ;

F.F. 프로시저 캐시 지우기Clear Procedure Cache

이 예제에서는 프로시저 캐시를 지웁니다(기본 데이터베이스에 대해서만 사용 가능).This example clears the procedure cache (possible only for a primary database).

ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE;

G.G. IDENTITY_CACHE 설정Set IDENTITY_CACHE

적용 대상: SQL ServerSQL Server (SQL Server 2017(14.x)SQL Server 2017 (14.x)부터 시작) 및 Azure SQL DatabaseAzure SQL Database(기능은 공개 미리 보기 상태)APPLIES TO: SQL ServerSQL Server (Starting with SQL Server 2017(14.x)SQL Server 2017 (14.x)) and Azure SQL DatabaseAzure SQL Database (feature is in public preview)

이 예제는 ID 캐시를 비활성화합니다.This example disables the identity cache.

ALTER DATABASE SCOPED CONFIGURATION SET IDENTITY_CACHE = OFF ;

H.H. OPTIMIZE_FOR_AD_HOC_WORKLOADS 설정Set OPTIMIZE_FOR_AD_HOC_WORKLOADS

적용 대상: Azure SQL DatabaseAzure SQL DatabaseAPPLIES TO: Azure SQL DatabaseAzure SQL Database

이 예제는 일괄 처리가 처음으로 컴파일될 때 캐시에 저장될 컴파일된 계획 스텁을 활성화합니다.This example enables a compiled plan stub to be stored in cache when a batch is compiled for the first time.

ALTER DATABASE SCOPED CONFIGURATION SET OPTIMIZE_FOR_AD_HOC_WORKLOADS = ON;

9.I. ELEVATE_ONLINE 설정Set ELEVATE_ONLINE

적용 대상: Azure SQL DatabaseAzure SQL Database(기능은 퍼블릭 미리 보기 상태임)APPLIES TO: Azure SQL DatabaseAzure SQL Database (feature is in public preview)

이 예에서는 ELEVATE_ONLINE을 FAIL_UNSUPPORTED로 설정합니다.This example sets ELEVATE_ONLINE to FAIL_UNSUPPORTED.

ALTER DATABASE SCOPED CONFIGURATION SET ELEVATE_ONLINE = FAIL_UNSUPPORTED ;

J.J. ELEVATE_RESUMABLE 설정Set ELEVATE_RESUMABLE

적용 대상: Azure SQL DatabaseAzure SQL DatabaseSQL Server 2019 (15.x)SQL Server 2019 (15.x)(기능은 퍼블릭 미리 보기 상태임)APPLIES TO: Azure SQL DatabaseAzure SQL Database and SQL Server 2019 (15.x)SQL Server 2019 (15.x) (feature is in public preview)

이 예에서는 ELEVATE_RESUMABLE을 WHEN_SUPPORTED로 설정합니다.This example sets ELEVATE_RESUMABLE to WHEN_SUPPORTED.

ALTER DATABASE SCOPED CONFIGURATION SET ELEVATE_RESUMABLE = WHEN_SUPPORTED ;

11.K. 계획 캐시에서 쿼리 계획 지우기Clear a query plan from the plan cache

적용 대상: SQL ServerSQL Server (SQL Server 2017(14.x)SQL Server 2017 (14.x)부터 시작) 및 Azure SQL DatabaseAzure SQL DatabaseAPPLIES TO: SQL ServerSQL Server (Starting with SQL Server 2017(14.x)SQL Server 2017 (14.x)) and Azure SQL DatabaseAzure SQL Database

이 예에서는 프로시저 캐시에서 특정 계획을 지웁니다.This example clears a specific plan from the procedure cache

ALTER DATABASE SCOPED CONFIGURATION CLEAR PROCEDURE_CACHE 0x06000500F443610F003B7CD12C02000001000000000000000000000000000000000000000000000000000000;

12.L. 일시 중지 기간 설정Set paused duration

적용 대상: Azure SQL Database만 해당APPLIES TO: Azure SQL Database only

이 예제에서는 다시 시작 가능한 인덱스 일시 중지 기간을 60분으로 설정합니다.This example sets the resumable index paused duration to 60 minutes.

ALTER DATABASE SCOPED CONFIGURATION
SET PAUSED_RESUMABLE_INDEX_ABORT_DURATION_MINUTES = 60

추가 리소스Additional Resources

MAXDOP 리소스MAXDOP Resources

LEGACY_CARDINALITY_ESTIMATION 리소스LEGACY_CARDINALITY_ESTIMATION Resources

PARAMETER_SNIFFING 리소스PARAMETER_SNIFFING Resources

QUERY_OPTIMIZER_HOTFIXES 리소스QUERY_OPTIMIZER_HOTFIXES Resources

ELEVATE_ONLINE 리소스ELEVATE_ONLINE Resources

온라인 인덱스 작업에 대한 지침Guidelines for Online Index Operations

ELEVATE_RESUMABLE 리소스ELEVATE_RESUMABLE Resources

온라인 인덱스 작업에 대한 지침Guidelines for Online Index Operations

자세한 정보More information

sys.database_scoped_configurations sys.database_scoped_configurations
SQL Server의 "최대 병렬 처리 수준" 구성 옵션에 대한 권장 사항 및 지침 Recommendations and guidelines for the "max degree of parallelism" configuration option in SQL Server
sys.configurations sys.configurations
데이터베이스 및 파일 카탈로그 뷰 Databases and Files Catalog Views
서버 구성 옵션 Server Configuration Options
온라인 인덱스 작동 방식 How Online Index Operations Work
온라인으로 인덱스 작업 수행 Perform Index Operations Online
ALTER INDEX(Transact-SQL) ALTER INDEX (Transact-SQL)
CREATE INDEX(Transact-SQL)CREATE INDEX (Transact-SQL)