Modificare il livello di compatibilità del database e usare Query StoreChange the Database Compatibility Level and use the Query Store

QUESTO ARGOMENTO SI APPLICA A: sìSQL Server (solo Windows)noAzure SQL DatabasenoAzure SQL Data WarehousenoParallel Data Warehouse THIS TOPIC APPLIES TO: yesSQL Server (Windows only)noAzure SQL DatabasenoAzure SQL Data WarehousenoParallel Data Warehouse

Da SQL Server 2016 (13.x)SQL Server 2016 (13.x) fino a SQL Server 2017SQL Server 2017 alcune modifiche vengono abilitate solo dopo che il livello di compatibilità del database è stato modificato.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. Questa operazione viene eseguita per diversi motivi:This was done for several reasons:

  • Poiché l'aggiornamento è un'operazione unidirezionale, in quanto non è possibile effettuare il downgrade del formato del file, è utile impostare l'abilitazione delle nuove funzionalità come un'operazione separata all'interno del database.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. È possibile ripristinare un'impostazione a un livello di compatibilità del database precedente.It is possible to revert a setting to a prior database compatibility level. Il nuovo modello riduce il numero di operazioni che devono essere eseguite durante un intervallo di interruzione.The new model reduces the number of things that must happen during an outage window.

  • Le modifiche apportate a Query Processor possono avere effetti complessi.Changes to the query processor can have complex effects. Anche se una modifica "positiva" al sistema è ideale per la maggior parte dei carichi di lavoro, potrebbe causare una regressione inaccettabile altrove in una query importante.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. Separare la logica dal processo di aggiornamento consente a funzionalità quali Query Store di ridurre rapidamente le regressioni della scelta del piano o persino di evitarle completamente nei server di produzione.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.

Importante

Sono previsti i comportamenti seguenti per SQL Server 2017 (14.x)SQL Server 2017 (14.x) quando un database viene collegato o ripristinato e dopo un aggiornamento sul posto: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:

  • Se il livello di compatibilità di un database utente era 100 o superiore prima dell'aggiornamento, rimane invariato dopo l'aggiornamento.If the compatibility level of a user database was 100 or higher before the upgrade, it remains the same after upgrade.
  • Se il livello di compatibilità di un database utente è 90 prima dell'aggiornamento, nel database aggiornato viene impostato su 100, ovvero sul livello di compatibilità supportato più basso in SQL Server 2017 (14.x)SQL Server 2017 (14.x).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).
  • I livelli di compatibilità dei database tempdb, model, msdb e Resource vengono impostati sul livello di compatibilità corrente dopo l'aggiornamento.The compatibility levels of the tempdb, model, msdb and Resource databases are set to the current compatibility level after upgrade.
  • Per il database di sistema master viene mantenuto il livello di compatibilità precedente l'aggiornamento.The master system database retains the compatibility level it had before upgrade.

Il processo di aggiornamento per abilitare nuove funzionalità di Query Processor è correlato al modello di manutenzione post-rilascio del prodotto.The upgrade process to enable new query processor functionality is related to the post-release servicing model of the product. Alcune di queste correzioni vengono rilasciate con il flag di traccia 4199.Some of those fixes are released under trace flag 4199. I clienti che necessitano di correzioni possono acconsentire esplicitamente a esse senza causare regressioni impreviste per altri clienti.Customers needing fixes can opt-in to those fixes without causing unexpected regressions for other customers. Il modello di manutenzione post-rilascio per gli aggiornamenti rapidi di Query Processor è documentato qui.The post-release servicing model for query processor hotfixes is documented here. A partire da SQL Server 2016 (13.x)SQL Server 2016 (13.x) il passaggio a un nuovo livello di compatibilità implica che il flag di traccia 4199 non è più necessario, perché tali correzioni sono ora abilitate per impostazione predefinita nel livello di compatibilità più recente.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. Come parte del processo di aggiornamento, è pertanto importante verificare che al termine del processo di aggiornamento il flag di traccia 4199 non sia abilitato.Therefore, as part of the upgrade process, it is important to validate that 4199 is not enabled once the upgrade process completes.

Nota

Il flag di traccia 4199 tuttavia è ancora necessario per abilitare eventuali nuove correzioni di Query Processor rilasciate dopo la versione RTM, se applicabile.However, trace flag 4199 is still needed to enable any new query processor fixes released after RTM, if applicable.

Il flusso di lavoro consigliato per aggiornare Query Processor alla versione più recente del codice è documentato nella sezione Mantenere la stabilità delle prestazioni durante l'aggiornamento alla nuova versione di SQL Server in Scenari di utilizzo di Query Store, come illustrato di seguito.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

Vedere ancheSee Also

Visualizzare o modificare il livello di compatibilità di un database View or Change the Compatibility Level of a Database
Scenari di utilizzo dell'Archivio query Query Store Usage Scenarios
Livello di compatibilità ALTER DATABASE (Transact-SQL)ALTER DATABASE (Transact-SQL) Compatibility Level