Condividi tramite


Spazio di archiviazione query per repliche secondarie leggibili

SQL Server 2022 (16.x)

La funzionalità Query Store per repliche secondarie leggibili abilita la stessa funzionalità di Query Store nei carichi di lavoro di replica secondaria disponibili per le repliche primarie. Quando Query Store per le repliche secondarie è abilitato, le repliche inviano le informazioni sull'esecuzione della query che normalmente vengono archiviate nell'Archivio query alla replica primaria. La replica primaria quindi persiste i dati su disco all'interno del proprio Query Store. In sostanza, c'è un Query Store condiviso tra la replica primaria e tutte le repliche secondarie. Query Store esiste nella replica primaria e archivia i dati per tutte le repliche insieme. Attualmente, Query Store per le repliche secondarie è disponibile con le istanze di SQL Server 2022 (16.x) configurate nei gruppi di disponibilità.

Osservazioni:

Query Store per repliche secondarie leggibili è una funzionalità di anteprima . Non è destinato alle distribuzioni di produzione. Per altre informazioni, vedere note sulla versione di SQL Server 2022.

È necessario abilitare il flag di traccia 12606 prima di poter abilitare Query Store per repliche secondarie leggibili. Per abilitare i flag di traccia :

  1. In Windows avviare Gestione configurazione SQL Server.

  2. Nell'elenco dei servizi di SQL Server , fare clic con il pulsante destro del mouse sul servizio dell'istanza di SQL Server per l'istanza di SQL Server 2022 (16.x). Selezionare Proprietà.

  3. Selezionare la scheda parametri di avvio. Nel campo Specificare un parametro di avvio:, aggiungere i valori: -T12606 e selezionare Aggiungi.

  4. Il servizio di istanza di SQL Server deve essere riavviato prima di rendere effettive le modifiche.

Annotazioni

A partire da SQL Server 2025 (17.x) Anteprima, Query Store per le repliche secondarie leggibili non è più in anteprima ed è abilitato per impostazione predefinita. Il flag di traccia 12606 non è più necessario per usare Query Store per la funzionalità repliche secondarie leggibili. L'abilitazione del flag di traccia 12606 in SQL Server 2025 (17.x) Preview disabilita la funzionalità Query Store per repliche secondarie leggibili.

Abilitare Query Store per repliche secondarie leggibili

Prima di usare Query Store per repliche secondarie leggibili in un'istanza di SQL Server, è necessario disporre di un gruppo di disponibilità AlwaysOn. Abilitare quindi Query Store per repliche secondarie leggibili usando le opzioni ALTER DATABASE SET.

Se Query Store non è già abilitato ed impostato in modalità READ_WRITE sul replica primaria, è necessario abilitarlo prima di procedere. Eseguire quanto segue per ogni database desiderato nella replica primaria:

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

Per abilitare Query Store in tutti i database secondari leggibili, connettersi alla replica primaria ed eseguire quanto segue per ogni database desiderato. Attualmente, quando il Query Store per le repliche secondarie leggibili è abilitato, lo è per tutte le repliche secondarie.

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

Per disabilitare Query Store in tutte le repliche secondarie, connettersi alla replica primaria ed eseguire le operazioni seguenti per ogni database desiderato:

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

È possibile verificare che Query Store sia abilitato in una replica secondaria connettendosi al database nella replica secondaria ed eseguendo quanto segue:

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

I seguenti risultati di esempio dall'esecuzione della query sys.database_query_store_options indicano che il Query Store si trova nello stato READ_CAPTURE_SECONDARY per il secondario. Il readonly_reason di 8 indica che la query è stata eseguita su una replica secondaria. Questi risultati indicano che Query Store è stato abilitato correttamente nella replica secondaria.

stato_desiderato descrizione_stato_desiderato stato_attuale descrizione_stato_attuale motivo_solo_lettura
4 LEGGI_CATTURA_SECONDARIO 4 LEGGI_CATTURA_SECONDARIO 8

Dopo l'abilitazione, è possibile usare sys.query_store_replicas per verificare l'integrità di Query Store nella replica secondaria.

Per disabilitare Query Store per repliche secondarie leggibili, connettersi al database nella replica primaria ed eseguire il codice seguente:

ALTER DATABASE CURRENT
FOR SECONDARY SET QUERY_STORE = OFF;
GO

Set di repliche

Attualmente, quando il Query Store per le repliche secondarie leggibili è abilitato, lo è per tutte le repliche secondarie.

Un set di repliche viene definito come tutte le repliche senza nome che condividono un ruolo (primario, secondario, secondario geografico, primario geografico), oppure come replica nominata singolarmente. I dati archiviati sulle query possono essere analizzati come carichi di lavoro in base a un set di repliche. Query Store per le repliche consente di monitorare e regolare le prestazioni di qualsiasi carico di lavoro univoco di sola lettura che potrebbe essere in esecuzione su repliche secondarie.

Considerazioni sulle prestazioni di Query Store per le repliche secondarie leggibili

Il canale usato dalle repliche secondarie per inviare informazioni sulle query alla replica primaria è lo stesso canale usato per mantenere aggiornate le repliche secondarie. I dati vengono archiviati nelle stesse tabelle della replica primaria usata da Query Store per le query eseguite nella replica primaria, causando l'aumento delle dimensioni di Query Store.

Pertanto, quando un sistema è sottoposto a carico significativo, si potrebbe notare un rallentamento a causa dell'overload del canale. Inoltre, gli stessi problemi di acquisizione delle query ad hoc che esistono per Query Store continueranno a verificarsi per i carichi di lavoro eseguiti sulle repliche secondarie. Scopri di più su come mantenere i dati più rilevanti in Query Store.