Query's afstemmen met de QTA (Query Tuning Assistant)
U besluit de Query Store te gebruiken om de databaseprestaties vóór de migratie te bewaken en deze gegevens te vergelijken met de prestaties na de upgrade. U bent van plan om de QTA (Query Tuning Assistant) te gebruiken om teruggedraaide query's te vinden en verbeteringen voor te stellen. In deze les worden de stappen beschreven voor het gebruik van Query Store en QTA om de queryprestaties te behouden.
Omdat uw databasetoepassingen essentiële systemen zijn die de activiteiten van het bedrijf ondersteunen, moet u een actieplan en een plan voor onvoorziene gebeurtenissen voor de upgrade hebben. Upgrade van kernproductiedatabases één voor één. Bepaal een testplan voor de bijgewerkte databases om ervoor te zorgen dat elke database weer in productie is zonder problemen voordat u een upgrade uitvoert.
U kunt Query Store gebruiken om continu de prestaties van query's te bewaken en voor A/B-tests om de effecten van een wijziging, zoals een database-upgrade, te meten. De QTA biedt automatische ondersteuning na een upgrade om teruggedraaide query's te vinden en op te lossen op basis van de gegevens die zijn vastgelegd in de Query Store.
Voor een correcte werking van QTA moet u de volgende stappen in de juiste volgorde toepassen.
Belangrijk
Zorg ervoor dat u de database van uw productietoepassing gebruikt, of een met een toepassingsworkload die nauw overeenkomt met de workload van uw productiedatabase, zodat Query Store realistische metrische gegevens over de query's kan verzamelen.
- Migreer de database naar SQL Server 2022.
- Laat het compatibiliteitsniveau ongewijzigd bij de vorige VERSIE van SQL Server.
- Schakel Query Store in op de database.
- Laat de Query Store basislijngegevens verzamelen over de query's op basis van voldoende realistische gebruikersactiviteit.
- Upgrade het compatibiliteitsniveau naar SQL Server 2022 (160).
- Laat de Query Store opnieuw gegevens verzamelen over de query's op basis van voldoende realistische gebruikersactiviteit.
- Gebruik de QTA om de prestaties van query's te vergelijken voor en na het wijzigen van het compatibiliteitsniveau van de database. Als teruggedraaide query's worden gevonden, identificeert u oplossingen.
de database migreren
Wanneer u klaar bent om over te stappen op SQL Server 2022, begint u met het migreren van uw database naar het nieuwe exemplaar. Er zijn verschillende manieren om deze migratie uit te voeren. U kunt dit bijvoorbeeld doen met een eenvoudige back-up- en herstelactie of een databasespiegeling, of met bulksgewijs laden. De meest geschikte keuze is afhankelijk van de configuratie van uw huidige omgeving en de versie van SQL Server waaruit u migreert. Azure Data Migration Service (DMS) is een goede oplossing, omdat het databases vanaf SQL Server 2005 ondersteunt.
Notitie
Azure DMS biedt ook ondersteuning voor databasemigraties naar Azure SQL Managed Instance. Gebruik de Azure SQL-migratie-extensie voor Azure Data Studio om aan de slag te gaan.
Compatibiliteitsniveau ongewijzigd laten
Nadat u de database hebt gemigreerd, laat u het compatibiliteitsniveau ongewijzigd. Deze stap is essentieel omdat u wilt dat de basislijn wordt gemeten met behulp van de huidige databaseconfiguratie. Totdat u het compatibiliteitsniveau naar SQL Server 2014 (120) of hoger verplaatst, gebruikt SQL Server de verouderde kardinaliteitsschatter. SQL Server 2014 heeft een bijgewerkte kardinaliteitsschatter geïntroduceerd die de meeste query's ten goede komt, maar die zelden een negatieve invloed kan hebben op de prestaties.
Query Store inschakelen
Hoewel het compatibiliteitsniveau van de database op de vorige versie blijft, kunt u Query Store inschakelen in de database, omdat Query Store een functie op serverniveau is. De Query Store inschakelen:
- Klik in SQL Server Management Studio (SSMS) met de rechtermuisknop op de database en selecteer Eigenschappen.
- Selecteer Query Store in het linkerdeelvenster in het venster Database-eigenschappen.
- Stel de bewerkingsmodus (aangevraagd)in op Alleen-lezen of Lezen-schrijfbewerking.
- Selecteer OK.
U kunt ook de volgende instructie uitvoeren om Query Store in te schakelen in de standaardmodus READ WRITE
:
ALTER DATABASE <database-name> SET QUERY_STORE = ON
Query Store gegevens laten verzamelen
Zet uw gemigreerde database weer in productie en schakel over van databaseverbindingen vanuit toepassingen of rapporten. De database ontvangt query's van productietoepassingen. Sta toe dat Query Store lang genoeg kan worden uitgevoerd om een realistische workload voor de database te verzamelen.
De Query Store moet een typische cyclus van zakelijke activiteiten vastleggen, waaronder kantooruren, nachtverwerking, onderhoudsvensters en andere activiteiten. Voor veel bedrijven is de activiteit van een week voldoende, maar voor sommige bedrijven kan deze periode korter of langer zijn.
Veel bedrijven hebben belangrijke cycli, en daarom unieke activiteit, voor biweekse salarisadministratie of de verwerking van de maand. U moet rekening houden met de timing van de bedrijfscycli die uw databases ervaren. Voor een supermarkt beslaan de wekelijkse aankomst- en voorraadcycli de meeste databaseactiviteit.
U kunt de verzamelde gegevens bekijken door te bladeren door de tabbladen Query Store. Als u de tabbladen wilt zien, vouwt u in SSMS Objectverkenner de databasestructuur uit om Query Store weer te geven. Zodra u tevreden bent dat er voldoende gegevens zijn verzameld, kunt u de upgrade plannen.
Het compatibiliteitsniveau upgraden
Voordat u een wijziging aanbrengt in een database, is het raadzaam om een back-up te maken van de database, indien mogelijk buiten werkuren. Voer na het maken van uw back-up het compatibiliteitsniveau als volgt bij:
- Klik met de rechtermuisknop op de database in SSMS Objectverkenner en kies Eigenschappen.
- Selecteer in het venster Database-eigenschappen het tabblad Opties .
- Wijzig het compatibiliteitsniveau in SQL Server 2022 (160) en selecteer OK.
U kunt ook de volgende instructie uitvoeren:
ALTER DATABASE <database-name> SET COMPATIBILITY_LEVEL = 160
De Query Store gegevens laten verzamelen
Nadat uw database is bijgewerkt en toepassingen zijn hervat, blijft Query Store op de achtergrond worden uitgevoerd om metrische gegevens voor de query's te verzamelen. De query's worden nu blootgesteld aan potentiële problemen vanwege de nieuwe kardinaliteitsschatter die de queryoptimalisatie gebruikt.
Ga door met het uitvoeren van de Query Store en sta toe dat er gegevens worden verzameld voor dezelfde duur als vóór de upgrade. Queryregressie kan echter meteen worden weergegeven, zodat u actie kunt ondernemen om eventuele prestatieproblemen onmiddellijk op te lossen.
De queryafstemmingsassistent uitvoeren
Voer de QTA uit om eventuele regresserende query's aan te pakken. De QTA configureren:
- Klik met de rechtermuisknop op de database in SSMS Objectverkenner en selecteer >.
- Voer in het installatiescherm van de wizard Queryafstemmingassistent de workloadduur (dagen) in om vast te leggen en het compatibiliteitsniveau van de doeldatabase.
- Selecteer Volgendeom de schermen Instellingen en Afstemmen te configureren.
- Selecteer Voltooien.
Als u de QTA wilt bewaken, klikt u met de rechtermuisknop op de naam van de database en selecteert u Takendatabase-upgrademonitorsessies>. De QTA biedt u een overzichtsrapport voor de belangrijkste teruggedraaide query's, waarbij de waargenomen gegevens worden vergeleken met de basislijngegevens. Vervolgens kunt u de wijzigingen bekijken die door QTA worden aanbevolen voor het afstemmen van de query's waarbij de prestaties zijn verslechterd.
Samenvatting
Gebruik de QTA na de upgrade van uw database om query's te vinden en op te lossen die terugkeren als gevolg van de upgrade. Als u wilt dat de QTA teruggedraaide query's gaat opzoeken, moet u eerst een basislijn maken met behulp van Query Store om query's te meten op het oude compatibiliteitsniveau.
Query Store verzamelt vervolgens metrische gegevens na de upgrade, die u kunt gebruiken met de QTA om de nieuwe prestaties te vergelijken met de basislijn. Het is van cruciaal belang voor de QTA-bewerking dat de Query Store gegevens verzamelt vóór en na de upgrade.
Wanneer de QTA teruggedraaide query's identificeert, wordt er geëxperimenteerd om de beste acties te vinden voor het verbeteren van de prestaties. Vervolgens kunt u deze acties toepassen.