sys.database_query_store_options (Transact-SQL)

Gilt für: SQL Server 2016 (13.x) und höher Azure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse Analytics

Gibt die Abfragespeicher Optionen für diese Datenbank zurück.

Gilt für: SQL Server (SQL Server 2016 (13.x) und höher), SQL-Datenbank.

Spaltenname Datentyp BESCHREIBUNG
desired_state smallint Gibt den gewünschten Betriebsmodus von Abfragespeicher an, der explizit vom Benutzer festgelegt wird.
0 = OFF
1 = READ_ONLY
2 = READ_WRITE
4 = READ_CAPTURE_SECONDARY
desired_state_desc nvarchar(60) Textbeschreibung des gewünschten Betriebsmodus von Abfragespeicher:
OFF
READ_ONLY
READ_WRITE
READ_CAPTURE_SECONDARY
actual_state smallint Gibt den Betriebsmodus von Abfragespeicher an. Zusätzlich zur Liste der gewünschten Zustände, die vom Benutzer benötigt werden, kann der tatsächliche Zustand ein Fehlerzustand sein.
0 = OFF
1 = READ_ONLY
2 = READ_WRITE
3 = FEHLER
4 = READ_CAPTURE_SECONDARY
actual_state_desc nvarchar(60) Textbeschreibung des tatsächlichen Betriebsmodus von Abfragespeicher.
OFF
READ_ONLY
READ_WRITE
ERROR
READ_CAPTURE_SECONDARY

Es gibt Situationen, in denen sich der tatsächliche Zustand vom gewünschten Zustand unterscheidet:
- Wenn die Datenbank auf schreibgeschützten Modus festgelegt ist oder Abfragespeicher Größe das konfigurierte Kontingent überschreitet, kann Abfragespeicher im schreibgeschützten Modus arbeiten, auch wenn der Benutzer Lese-/Schreibzugriff angegeben hat.
– In extremen Szenarien können Abfragespeicher aufgrund interner Fehler in den FEHLERzustand wechseln. Falls dies eintritt, kann der Abfragespeicher ab SQL Server 2017 (14.x) wiederhergestellt werden, indem in der betroffenen Datenbank die gespeicherte Prozedur sp_query_store_consistency_check ausgeführt wird. Wenn die Ausführung sp_query_store_consistency_check nicht funktioniert oder Sie SQL Server 2016 (13.x) verwenden, müssen Sie die Daten löschen, indem Sie ausführen.ALTER DATABASE [YourDatabaseName] SET QUERY_STORE CLEAR ALL;
readonly_reason int Wenn der desired_state_desc READ_WRITE und der actual_state_desc READ_ONLY ist, gibt readonly_reason eine Bitzuordnung zurück, um anzugeben, warum sich der Abfragespeicher im schreibgeschützten Modus befindet.

1 : Die Datenbank befindet sich im schreibgeschützten Modus

2 : Die Datenbank befindet sich im Einzelbenutzermodus

4 : Die Datenbank befindet sich im Notfallmodus

8 : Die Datenbank ist ein sekundäres Replikat (gilt für Verfügbarkeitsgruppen und Azure SQL Georeplikation der Datenbank). Dieser Wert kann nur auf lesbaren sekundären Replikaten effektiv beobachtet werden.

65536: Die Abfragespeicher hat das durch die MAX_STORAGE_SIZE_MB Option festgelegte Größenlimit erreicht. Weitere Informationen zu dieser Option finden Sie unter ALTER DATABASE SET-Optionen (Transact-SQL).

131072: Die Anzahl der verschiedenen Anweisungen in Abfragespeicher das interne Speicherlimit erreicht hat. Erwägen Sie das Entfernen von Abfragen, die Sie nicht benötigen, oder ein Upgrade auf eine höhere Dienstebene, um die Übertragung Abfragespeicher in den Lese-/Schreibmodus zu ermöglichen.


262144 : Die Größe von Speicherelementen, die darauf warten, auf dem Datenträger beibehalten zu werden, hat das interne Speicherlimit erreicht. Abfragespeicher befindet sich vorübergehend im schreibgeschützten Modus, bis die Speicherelemente auf dem Datenträger beibehalten werden.


524288 : Die Datenbank hat die Datenträgergröße erreicht. Abfragespeicher Teil der Benutzerdatenbank ist, bedeutet dies, dass Abfragespeicher nicht mehr wachsen kann, wenn für eine Datenbank kein Speicherplatz mehr verfügbar ist.


Informationen zum Umschalten des Abfragespeicher-Betriebsmodus zum Lese-/Schreibmodus finden Sie im Abschnitt Überprüfen, Abfragespeicher Abfragedaten kontinuierlich sammelt, im Abschnitt Bewährte Methoden mit dem Abfragespeicher.
current_storage_size_mb bigint Größe der Abfragespeicher auf dem Datenträger in Megabyte.
flush_interval_seconds bigint Der Zeitraum für das regelmäßige Leeren von Abfragespeicher Daten auf den Datenträger in Sekunden. Der Standardwert ist 900 (15 Min.).

Ändern Sie mithilfe der ALTER DATABASE <database> SET QUERY_STORE (DATA_FLUSH_INTERVAL_SECONDS = <interval>) -Anweisung.
interval_length_minutes bigint Das Statistikaggregationsintervall in Minuten. Beliebige Werte sind nicht zulässig. Verwenden Sie eine der folgenden: 1, 5, 10, 15, 30, 60 und 1440 Minuten. Der Standardwert ist 60 Minuten.
max_storage_size_mb bigint Maximale Datenträgergröße für die Abfragespeicher in Megabyte (MB). Der Standardwert beträgt 100 MB bis SQL Server 2017 (14.x) und 1 GB ab SQL Server 2019 (15.x).
Der Standardwert für die Premium Edition von SQL-Datenbank liegt bei 1 GB, für die Basic Edition von SQL-Datenbank bei 10 MB.

Ändern Sie mithilfe der ALTER DATABASE <database> SET QUERY_STORE (MAX_STORAGE_SIZE_MB = <size>) -Anweisung.
stale_query_threshold_days bigint Anzahl der Tage, an denen die Informationen für eine Abfrage im Abfragespeicher aufbewahrt werden. Standardwert: 30. Legen Sie auf 0 fest, um die Aufbewahrungsrichtlinie zu deaktivieren.
Für die Basic Edition von SQL-Datenbank ist der Standardwert 7 Tage.

Ändern Sie mithilfe der ALTER DATABASE <database> SET QUERY_STORE ( CLEANUP_POLICY = ( STALE_QUERY_THRESHOLD_DAYS = <value> ) ) -Anweisung.
max_plans_per_query bigint Schränkt die maximale Anzahl gespeicherter Pläne ein. Der Standardwert ist 200. Wenn der Maximalwert erreicht wird, Abfragespeicher die Erfassung neuer Pläne für diese Abfrage beendet. Wenn Sie auf 0 festlegen, wird die Einschränkung in Bezug auf die Anzahl der erfassten Pläne aufgehoben.

Ändern Sie mithilfe der ALTER DATABASE<database> SET QUERY_STORE (MAX_PLANS_PER_QUERY = <n>) -Anweisung.
query_capture_mode smallint Der derzeit aktive Abfrageerfassungsmodus:

1 = ALLE - alle Abfragen werden erfasst. Dies ist der Standardkonfigurationswert für SQL Server (SQL Server 2016 (13.x) und höher).

2 = AUTO: Erfassen Sie relevante Abfragen basierend auf der Ausführungsanzahl und dem Ressourcenverbrauch. Dies ist der Standardkonfigurationswert für SQL-Datenbank.

3 = NONE : Die Erfassung neuer Abfragen wird beendet. Der Abfragedatenspeicher sammelt weiterhin Statistiken zur Kompilierung und Runtime für Abfragen, die bereits erfasst wurden. Verwenden Sie diese Konfiguration vorsichtig, da Sie möglicherweise wichtige Abfragen nicht erfassen.

4 = BENUTZERDEFINIERT: Ermöglicht zusätzliche Kontrolle über die Abfrageerfassungsrichtlinie mithilfe der QUERY_CAPTURE_POLICY Optionen.
Gilt für: SQL Server 2019 (15.x) und höher.
query_capture_mode_desc nvarchar(60) Textbeschreibung des tatsächlichen Erfassungsmodus von Abfragespeicher:

ALL (Standardeinstellung für SQL Server 2016 (13.x))

AUTO (Standardeinstellung für SQL-Datenbank)

Keine

CUSTOM
capture_policy_execution_count int Benutzerdefinierte Richtlinienoption für den Abfrageerfassungsmodus. Definiert die Häufigkeit, mit der eine Abfrage im Auswertungszeitraum ausgeführt wird. Der Standardwert ist 30.
Gilt für: SQL Server 2019 (15.x) und höher.
capture_policy_total_compile_cpu_time_ms bigint Benutzerdefinierte Richtlinienoption für den Abfrageerfassungsmodus. Definiert die gesamte verstrichene Kompilierungs-CPU-Zeit, die eine Abfrage über den Auswertungszeitraum in Anspruch nimmt. Der Standardwert lautet 1000.
Gilt für: SQL Server 2019 (15.x) und höher.
capture_policy_total_execution_cpu_time_ms bigint Benutzerdefinierte Richtlinienoption für den Abfrageerfassungsmodus. Definiert die gesamte verstrichene Ausführungs-CPU-Zeit, die eine Abfrage über den Auswertungszeitraum in Anspruch nimmt. Der Standard ist 100.
Gilt für: SQL Server 2019 (15.x) und höher.
capture_policy_stale_threshold_hours int Benutzerdefinierte Richtlinienoption für den Abfrageerfassungsmodus. Definiert den Zeitraum des Auswertungsintervalls um zu bestimmen, ob eine Abfrage erfasst werden sollte. Der Standardwert ist 24 Stunden.
Gilt für: SQL Server 2019 (15.x) und höher.
size_based_cleanup_mode smallint Steuert, ob die Bereinigung automatisch aktiviert wird, wenn sich die Gesamtmenge der Daten der maximalen Größe nähert:

0 = OFF: Die größenbasierte Bereinigung wird nicht automatisch aktiviert.

1 = AUTO: Die größenbasierte Bereinigung wird automatisch aktiviert, wenn die Größe auf dem Datenträger 90 Prozent der max_storage_size_mb erreicht. Dies ist der Standardkonfigurationswert.

Ein auf der Größe basierendes Cleanup entfernt die am wenigsten aufwendigen und die ältesten Abfragen. Sie wird beendet, wenn etwa 80 Prozent der max_storage_size_mb erreicht sind.
size_based_cleanup_mode_desc nvarchar(60) Textbeschreibung des tatsächlichen größenbasierten Bereinigungsmodus von Abfragespeicher:

OFF
AUTO (Standard)
wait_stats_capture_mode smallint Steuert, ob Abfragespeicher die Erfassung von Wartestatistiken ausführt:

0 = OFF
1 = ON
Gilt für: SQL Server 2017 (14.x) und höher
wait_stats_capture_mode_desc nvarchar(60) Textbeschreibung des tatsächlichen Erfassungsmodus für Wartestatistiken:

OFF
ON (Standard)
Gilt für: SQL Server 2017 (14.x) und höher
actual_state_additional_info nvarchar(8000) Derzeit nicht verwendet.

Berechtigungen

Erfordert die VIEW DATABASE STATE-Berechtigung.

Bemerkungen

Der actual_state_desc Wert READ_CAPTURE_SECONDARY ist der erwartete Zustand, wenn Abfragespeicher für sekundäre Replikate aktiviert ist. Weitere Informationen finden Sie unter Abfragespeicher für sekundäre Replikate.

Nächste Schritte