Dela via


Query Store för sekundära repliker

SQL Server 2022 (16.x)

Funktionen Query Store för sekundära repliker möjliggör samma Query Store-funktioner på sekundära replikarbetsbelastningar som är tillgängliga för primära repliker. När Query Store för sekundära repliker är aktiverad skickar replikerna information om frågeutförande som normalt lagras i Query Store tillbaka till den primära repliken. Den primära repliken lagrar sedan data på disken i sitt eget Frågearkiv. I grund och botten finns det ett Query Store som delas mellan de primära och alla sekundära repliker. Query Store finns på den primära repliken och lagrar data för alla repliker tillsammans. För närvarande är Query Store för sekundära repliker tillgängligt med SQL Server 2022-instanser (16.x) som konfigurerats i tillgänglighetsgrupper.

Viktig

Query Store för sekundära repliker är en förhandsversion funktion. Den är inte avsedd för produktionsdistributioner. Se: versionsinformation för SQL Server 2022 (16.0).

Du måste aktivera spårningsflagga 12606 innan du kan aktivera Query Store för sekundära repliker. Aktivera spårningsflaggor:

  1. Starta SQL Server Configuration Manageri Windows.
  2. I listan över SQL Server Services-högerklickar du på instanstjänsten SQL Server för SQL Server 2022-instansen (16.x). Välj Egenskaper.
  3. Välj fliken Startparametrar. I fältet Ange en startparameter: lägger du till värdena: -T12606 och väljer Lägg till.
  4. SQL Server-instanstjänsten måste startas om innan ändringarna börjar gälla.

Aktivera Query Store för sekundära repliker

Innan du använder Query Store för sekundära repliker på en SQL Server-instans måste du ha en AlwaysOn-tillgänglighetsgrupp. Aktivera sedan Query Store för sekundära repliker med hjälp av ALTER DATABASE SET-alternativ (Transact-SQL).

Om Query Store inte redan är aktiverat och i READ_WRITE läge på den primära repliken måste du aktivera det innan du fortsätter. Kör följande för varje önskad databas på den primära repliken:

ALTER DATABASE [Database_Name] SET QUERY_STORE = ON;
GO
ALTER DATABASE [Database_Name] SET QUERY_STORE
( OPERATION_MODE = READ_WRITE );

Om du vill aktivera Query Store på alla sekundära repliker ansluter du till den primära repliken och kör följande för varje önskad databas. När Query Store för sekundära repliker är aktiverat är det för närvarande aktiverat för alla sekundära repliker.

ALTER DATABASE [Database_Name]
FOR SECONDARY SET QUERY_STORE = ON (OPERATION_MODE = READ_WRITE );
GO

Om du vill inaktivera Query Store på alla sekundära repliker ansluter du till den primära repliken och kör följande för varje önskad databas:

ALTER DATABASE [Database_Name]
FOR SECONDARY SET QUERY_STORE = OFF;
GO

Du kan kontrollera att Query Store är aktiverat på en sekundär replik genom att ansluta till databasen på den sekundära repliken och köra följande:

SELECT desired_state, desired_state_desc, actual_state, actual_state_desc, readonly_reason
FROM sys.database_query_store_options;
GO

Följande exempelresultat från förfrågan sys.database_query_store_options anger att Query Store är i READ_CAPTURE_SECONDARY-tillstånd för den sekundära noden. readonly_reason av 8 anger att frågan kördes mot en sekundär replik. Dessa resultat indikerar att Query Store har aktiverats på den sekundära repliken.

önskat_tillstånd önskat_tillstånd_beskrivning faktiskt tillstånd beskrivning av aktuellt tillstånd orsak för skrivskyddat läge
4 LÄS_UPPTAGNING_SEKUNDÄR 4 LÄS_FÅNGST_SEKUNDÄR 8

När det är aktiverat kan du använda sys.query_store_replicas för att verifiera hälsan för Frågearkivet på den sekundära repliken.

Om du vill inaktivera Query Store för sekundära repliker ansluter du till databasen på den primära repliken och kör följande kod:

ALTER DATABASE CURRENT
FOR SECONDARY SET QUERY_STORE = OFF;
GO

Replikuppsättningar

När Query Store för sekundära repliker är aktiverat är det för närvarande aktiverat för alla sekundära repliker.

En replikuppsättning definieras som alla icke namngivna repliker som delar en roll (primär, sekundär, geo-sekundär, geo-primär) eller som en enskild namngiven replik. Data som lagras om förfrågningar kan analyseras som arbetsbelastningar på basis av replikuppsättningar. Query Store för repliker ger möjlighet att övervaka och justera prestanda för alla unika, skrivskyddade arbetsbelastningar som kan köras mot sekundära repliker.

Prestandaöverväganden för Query Store för sekundära repliker

Kanalen som används av sekundära repliker för att skicka frågeinformation tillbaka till den primära repliken är samma kanal som används för att hålla sekundära repliker uppdaterade. Data lagras i samma tabeller på den primära repliken som Query Store använder för frågor som körs på den primära repliken, vilket gör att storleken på Query Store växer.

När ett system är under betydande belastning kan du därför märka en viss avmattning på grund av att kanalen är överbelastad. Dessutom kommer samma problem med insamling av ad hoc-frågor som finns idag för Query Store att fortsätta för arbetsbelastningar som körs på sekundära repliker. Läs mer om hur du bevarar de mest relevanta datan i Query Store.

Se även

Nästa steg