Freigeben über


Abfragespeicher für lesbare Secondärdateien

SQL Server 2022 (16.x)

Die Abfragespeicher-Funktion für lesbare sekundäre Replikate ermöglicht dieselbe Abfragespeicher-Funktionalität für sekundäre Replikate, die auch für primäre Replikate verfügbar ist. Wenn der Abfragespeicher für sekundäre Replikate aktiviert ist, senden Replikate die Abfrageausführungsinformationen, die normalerweise im Abfragespeicher wieder an das primäre Replikat gespeichert werden. Das primäre Replikat speichert die Daten dann im eigenen Abfragespeicher auf einem Datenträger. Im Wesentlichen gibt es einen Abfragespeicher, der zwischen den primären und allen sekundären Replikaten gemeinsam genutzt wird. Der Abfragespeicher ist im primären Replikat vorhanden und speichert Daten für alle Replikate zusammen. Derzeit ist der Abfragespeicher für sekundäre Replikate mit SQL Server 2022 (16.x)-Instanzen verfügbar, die in Verfügbarkeitsgruppen konfiguriert sind.

Bemerkungen

Der Abfragespeicher für lesbare sekundäre Replikate ist eine Vorschaufunktion. Es ist nicht für Produktionseinsätze vorgesehen. Weitere Informationen finden Sie in den Versionshinweisen zu SQL Server 2022.

Sie müssen die Ablaufverfolgungskennzeichnung 12606 aktivieren, bevor Sie den Abfragespeicher für lesbare Secondärdateien aktivieren können. So aktivieren Sie die Traceflags:

  1. Starten Sie in Windows SQL Server Configuration Manager.

  2. Klicken Sie in der Liste der SQL Server Services mit der rechten Maustaste auf den SQL Server-Instanzdienst für Ihre SQL Server 2022 (16.x)-Instanz. Wählen Sie Eigenschaften aus.

  3. Wählen Sie die Registerkarte "Startparameter" aus . Fügen Sie im Feld "Startparameter angeben" die Werte hinzu, -T12606 und wählen Sie "Hinzufügen" aus.

  4. Der SQL Server-Instanzdienst muss neu gestartet werden, bevor die Änderungen wirksam werden.

Hinweis

Ab SQL Server 2025 (17.x) Preview ist der Abfragespeicher für lesbare Secondärdateien nicht in der Vorschau enthalten und ist standardmäßig aktiviert. Die Ablaufverfolgungskennzeichnung 12606 ist nicht mehr erforderlich, um den Abfragespeicher für die Funktion lesbarer Sekundärreplikate zu verwenden. Durch Aktivieren des Trace-Flags 12606 in der Vorschauversion von SQL Server 2025 (17.x) wird die Funktion des Abfragespeichers für Sekundäre Lesekopien deaktiviert.

Aktivieren des Abfragespeichers für lesbare Secondärdateien

Bevor Sie den Abfragespeicher für lesbare Secondärdateien in einer SQL Server-Instanz verwenden, müssen Sie über eine AlwaysOn-Verfügbarkeitsgruppe verfügen. Aktivieren Sie dann den Abfragespeicher für lesbare Secondärdateien mithilfe von ALTER DATABASE SET-Optionen.

Wenn der Abfragespeicher noch nicht aktiviert ist und sich im READ_WRITE Modus des primären Replikats befindet, müssen Sie ihn aktivieren, bevor Sie fortfahren. Führen Sie für jede gewünschte Datenbank im primären Replikat Folgendes aus:

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

Um den Abfragespeicher für alle lesbaren Secondärdateien zu aktivieren, stellen Sie eine Verbindung mit dem primären Replikat her, und führen Sie folgendes für jede gewünschte Datenbank aus. Wenn der Abfragespeicher für lesbare Secondärdateien aktiviert ist, ist er für alle sekundären Replikate aktiviert.

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

Um den Abfragespeicher für alle sekundären Replikate zu deaktivieren, stellen Sie eine Verbindung mit dem primären Replikat her, und führen Sie für jede gewünschte Datenbank Folgendes aus:

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

Sie können überprüfen, ob der Abfragespeicher für ein sekundäres Replikat aktiviert ist, indem Sie eine Verbindung mit der Datenbank im sekundären Replikat herstellen und Folgendes ausführen:

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

Die folgenden Beispielergebnisse aus der Abfrage sys.database_query_store_options deuten darauf hin, dass sich der Abfragespeicher in einem READ_CAPTURE_SECONDARY-Zustand für die sekundäre Datenbank befindet. Der readonly_reason von 8 zeigt an, dass die Abfrage auf einem sekundären Replikat ausgeführt wurde. Diese Ergebnisse deuten darauf hin, dass der Abfragespeicher für das sekundäre Replikat erfolgreich aktiviert wurde.

gewünschter Zustand Beschreibung_des_erwünschten_Zustands Ist-Zustand actual_state_desc Schreibschutzgrund
4 READ_CAPTURE_SECONDARY 4 READ_CAPTURE_SECONDARY 8

Nach dem Aktivieren können Sie sys.query_store_replicas verwenden, um die Gesundheit des Abfragespeichers im sekundären Replikat zu überprüfen.

Um den Abfragespeicher für lesbare Secondärdateien zu deaktivieren, stellen Sie eine Verbindung mit der Datenbank im primären Replikat her, und führen Sie den folgenden Code aus:

ALTER DATABASE CURRENT
FOR SECONDARY SET QUERY_STORE = OFF;
GO

Replikatgruppen

Wenn der Abfragespeicher für lesbare Secondärdateien aktiviert ist, ist er für alle sekundären Replikate aktiviert.

Ein Replikatsatz wird als alle unbenannten Replikate definiert, die eine der folgenden Rollen teilen (primär, sekundär, geo-sekundär, geo-primär), oder als ein einzelnes benanntes Replikat. Die Daten, die über Abfragen gespeichert sind, können als Workloads auf Basis von Replikatsätzen analysiert werden. Der Abfragespeicher für Replikate bietet die Möglichkeit, die Leistung von eindeutigen, schreibgeschützten Workloads zu überwachen und anzupassen, die möglicherweise für sekundäre Replikate ausgeführt werden.

Überlegungen zur Leistung für den Abfragespeicher für lesbare Secondärdateien

Der Kanal, der von sekundären Replikaten zum Senden von Abfrageinformationen an das primäre Replikat verwendet wird, ist derselbe Kanal, der verwendet wird, um sekundäre Replikate auf dem neuesten Stand zu halten. Daten werden in denselben Tabellen im primären Replikat gespeichert, das der Abfragespeicher für Abfragen verwendet, die für das primäre Replikat ausgeführt werden, wodurch die Größe des Abfragespeichers vergrößert wird.

Wenn ein System also unter erheblicher Auslastung liegt, bemerken Sie möglicherweise eine Verlangsamung aufgrund der Überlastung des Kanals. Darüber hinaus werden die gleichen Ad-hoc-Abfrageerfassungsprobleme, die derzeit für den Abfragespeicher bestehen, auch für Workloads auf sekundären Replikaten fortbestehen. Erfahren Sie mehr darüber, wie Sie die relevantesten Daten im Abfragespeicher beibehalten.