Delen via


Het compatibiliteitsniveau van de database wijzigen en Query Store gebruiken

Van toepassing op:SQL Server - alleen Windows

In SQL Server 2016 (13.x) en hoger worden sommige wijzigingen alleen ingeschakeld zodra het databasecompatibiliteitsniveau is gewijzigd. Dit is om verschillende redenen gedaan:

  • Omdat de upgrade eenrichtingsbewerking is (het is niet mogelijk om de bestandsindeling te downgraden), is er waarde bij het scheiden van de activering van nieuwe functies in een afzonderlijke bewerking binnen de database. Het is mogelijk om een instelling terug te zetten naar een eerder databasecompatibiliteitsniveau. Het nieuwe model vermindert het aantal dingen dat moet gebeuren tijdens een storingsvenster.

  • Wijzigingen in de queryprocessor kunnen complexe effecten hebben. Hoewel een 'goede' wijziging in het systeem voor de meeste workloads geweldig kan zijn, kan dit leiden tot een onaanvaardbare regressie op een belangrijke query voor anderen. Door deze logica te scheiden van het upgradeproces, kunnen functies, zoals de Query Store, snel regressies van plannen beperken of zelfs helemaal in productieservers voorkomen.

Het volgende gedrag wordt verwacht voor SQL Server 2017 (14.x) wanneer een database is gekoppeld of hersteld en na een in-place upgrade:

  • Als het compatibiliteitsniveau van een gebruikersdatabase vóór de upgrade 100 of hoger was, blijft deze na de upgrade hetzelfde.
  • Als het compatibiliteitsniveau van een gebruikersdatabase 90 was vóór de upgrade, wordt in de bijgewerkte database het compatibiliteitsniveau ingesteld op 100. Dit is het laagste ondersteunde compatibiliteitsniveau in SQL Server 2017 (14.x).
  • De compatibiliteitsniveaus van de tempdb, modelen msdbResource databases worden ingesteld op het huidige compatibiliteitsniveau na de upgrade.
  • De master systeemdatabase behoudt het compatibiliteitsniveau dat deze vóór de upgrade had.

Het upgradeproces voor het inschakelen van nieuwe functionaliteit voor queryprocessors is gerelateerd aan het onderhoudsmodel na de release van het product. Sommige van deze oplossingen worden uitgebracht onder Trace Flag 4199. Klanten die oplossingen nodig hebben, kunnen zich aanmelden voor deze oplossingen zonder onverwachte regressies voor andere klanten te veroorzaken. Het onderhoudsmodel na de release voor hotfixes voor queryprocessor wordt hier beschreven. Vanaf SQL Server 2016 (13.x) impliceert het verplaatsen naar een nieuw compatibiliteitsniveau dat Trace Flag 4199 niet meer nodig is, omdat deze oplossingen nu standaard zijn ingeschakeld in het nieuwste compatibiliteitsniveau. Daarom is het belangrijk om als onderdeel van het upgradeproces te valideren dat 4199 niet is ingeschakeld zodra het upgradeproces is voltooid.

Opmerking

Trace Flag 4199 is nog steeds nodig om eventuele nieuwe queryprocessoroplossingen in te schakelen die na RTM zijn uitgebracht, indien van toepassing.

Zie Prestatiestabiliteit behouden tijdens de upgrade naar nieuwere SQL Server-sectie van Query Store-gebruiksscenario's voor informatie over de aanbevolen werkstroom om de queryprocessor bij te werken naar de nieuwste versie van de code.

Diagram met de aanbevolen werkstroom voor het upgraden van de queryprocessor naar de nieuwste versie van de code.

Vanaf SQL Server Management Studio 18 kunnen gebruikers worden begeleid via de aanbevolen werkstroom met behulp van de queryafstemmingsassistent. Zie Databases upgraden met behulp van de queryafstemmingsassistent voor meer informatie.