데이터베이스 호환성 수준 변경 및 쿼리 저장소 사용Change the Database Compatibility Level and use the Query Store

이 항목은 다음에 적용됩니다.예SQL Server(Windows 전용)아니요Azure SQL Database아니요Azure SQL Data Warehouse 아니요병렬 데이터 웨어하우스 THIS TOPIC APPLIES TO: yesSQL Server (Windows only)noAzure SQL DatabasenoAzure SQL Data WarehousenoParallel Data Warehouse

SQL Server 2016(13.x)SQL Server 2016 (13.x)부터 SQL Server 2017SQL Server 2017까지 데이터베이스 호환성 수준이 변경된 경우에만 일부 변경 내용이 활성화됩니다.In SQL Server 2016(13.x)SQL Server 2016 (13.x) through SQL Server 2017SQL Server 2017, some changes are only enabled once the database compatibility level has been changed. 이 작업은 여러 가지 이유로 수행되었습니다.This was done for several reasons:

  • 업그레이드는 단방향 작업이므로(파일 형식을 다운그레이드할 수 없음) 데이터베이스 내에서 별도 작업에 대한 새로운 기능의 사용을 분리하는 값이 있습니다.Since upgrade is a one-way operation (it is not possible to downgrade the file format), there is value in separating the enablement of new features to a separate operation within the database. 이전 데이터베이스 호환성 수준으로 설정을 되돌릴 수 있습니다.It is possible to revert a setting to a prior database compatibility level. 새 모델은 중단 창 동안 발생해야 하는 것의 수를 줄입니다.The new model reduces the number of things that must happen during an outage window.

  • 쿼리 프로세서에 대한 변경 내용에는 복잡한 영향이 있을 수 있습니다.Changes to the query processor can have complex effects. 시스템에 대한 "적절한" 변경이 대부분의 작업에 유용할 수도 있지만 다른 사용자에 대한 중요한 쿼리에서 허용되지 않는 회귀가 발생할 수 있습니다.Even though a “good” change to the system may be great for most workloads - it may cause an unacceptable regression on an important query for others. 업그레이드 프로세스에서 이 논리를 분리하는 작업은 쿼리 저장소와 같은 기능이 계획 선택 회귀를 신속하게 완화하거나 프로덕션 서버에서 완전히 방지할 수 있도록 합니다.Separating this logic from the upgrade process, allows for features such as the Query Store, to mitigate plan choice regressions quickly or even avoid them completely in production servers.

중요

데이터베이스가 연결 또는 복원된 경우, 그리고 현재 위치 업그레이드 이후에 SQL Server 2017(14.x)SQL Server 2017 (14.x)에서 아래 동작이 예상됩니다.The below behaviors are expected for SQL Server 2017(14.x)SQL Server 2017 (14.x) when a database is attached or restored, and after an in-place upgrade:

  • 사용자 데이터베이스의 호환성 수준이 업그레이드 이전에 100 이상이었다면 업그레이드 후에도 동일하게 유지됩니다.If the compatibility level of a user database was 100 or higher before the upgrade, it remains the same after upgrade.
  • 업그레이드 이전에 사용자데 이터베이스의 호환성 수준이 90이었다면 업그레이드된 데이터베이스에서는 호환성 수준이 SQL Server 2017(14.x)SQL Server 2017 (14.x)에서 지원되는 가장 낮은 호환성 수준인 100으로 설정됩니다.If the compatibility level of a user database was 90 before upgrade, in the upgraded database, the compatibility level is set to 100, which is the lowest supported compatibility level in SQL Server 2017(14.x)SQL Server 2017 (14.x).
  • 업그레이드 후에는 tempdb, 모델, msdb 및 리소스 데이터베이스의 호환성 수준이 현재 호환성 수준으로 설정됩니다.The compatibility levels of the tempdb, model, msdb and Resource databases are set to the current compatibility level after upgrade.
  • master 시스템 데이터베이스는 업그레이드 이전의 호환성 수준으로 유지됩니다.The master system database retains the compatibility level it had before upgrade.

새 쿼리 프로세서 기능을 활성화하는 업그레이드 프로세스는 제품의 릴리스 이후 서비스 모델과 관련이 있습니다.The upgrade process to enable new query processor functionality is related to the post-release servicing model of the product. 이러한 수정의 일부는 추적 플래그 4199에서 릴리스됩니다.Some of those fixes are released under trace flag 4199. 수정이 필요한 고객은 다른 고객에 대한 예기치 않은 회귀를 일으키지 않고 이러한 수정을 선택할 수 있습니다.Customers needing fixes can opt-in to those fixes without causing unexpected regressions for other customers. 쿼리 프로세서 핫픽스에 대한 릴리스 이후 서비스 모델은 여기에 설명되어 있습니다.The post-release servicing model for query processor hotfixes is documented here. SQL Server 2016(13.x)SQL Server 2016 (13.x)부터 새 호환성 수준으로 전환하면 이러한 수정이 이제 최신 호환성 수준에서 기본적으로 사용될 수 있으므로 추적 플래그 4199가 더 이상 필요하지 않습니다.Beginning with SQL Server 2016(13.x)SQL Server 2016 (13.x), moving to a new compatibility level implies that trace flag 4199 is no longer needed, because those fixes are now enabled by default in the latest compatibility level. 따라서 업그레이드 프로세스의 일부로 업그레이드 프로세스가 완료되면 4199가 활성화되지 않는 것을 확인하는 것이 중요합니다.Therefore, as part of the upgrade process, it is important to validate that 4199 is not enabled once the upgrade process completes.

참고

그러나 해당하는 경우 여전히 RTM 이후 출시된 새로운 쿼리 프로세서 수정을 활성화하는 데 추적 플래그 4199가 필요합니다.However, trace flag 4199 is still needed to enable any new query processor fixes released after RTM, if applicable.

쿼리 프로세서를 코드의 최신 버전으로 업그레이드하는 권장되는 워크플로는 쿼리 저장소 사용 시나리오의 최신 SQL Server 섹션으로 업그레이드하는 동안 성능 안정성 유지에서 문서화됩니다.The recommended workflow for upgrading the query processor to the latest version of the code is documented in the Keep performance stability during the upgrade to newer SQL Server section of Query Store Usage Scenarios, as seen below.

query-store-usage-5query-store-usage-5

참고 항목See Also

데이터베이스의 호환성 수준 보기 또는 변경 View or Change the Compatibility Level of a Database
쿼리 저장소 사용 시나리오 Query Store Usage Scenarios
ALTER DATABASE (Transact-SQL) 호환성 수준ALTER DATABASE (Transact-SQL) Compatibility Level