Freigeben über


ÄNDERUNG DER DATENBANK-SCOPED-KONFIGURATION (Transact-SQL)

Gilt für: SQL Server 2016 (13.x) und höhere Versionen der Azure SQL-DatenbankAzure SQL Managed InstanceAzure Synapse AnalyticsSQL-Datenbank in Microsoft Fabric

Dieser Befehl aktiviert mehrere Einstellungen für die Datenbankkonfiguration auf der Ebene einzelner Datenbanken.

Important

Verschiedene DATABASE SCOPED CONFIGURATION-Optionen werden in verschiedenen Versionen von SQL Server oder Azure-Diensten unterstützt. Auf dieser Seite werden alle. Falls zutreffend, werden Versionen angegeben. Stelle sicher, dass du die Syntax verwendest, die in der von dir verwendeten Version des Dienstes verfügbar ist.

Die folgenden Einstellungen werden in Azure SQL Database, SQL Database in Microsoft Fabric, Azure SQL Managed Instance und in SQL Server unterstützt, wie durch die Zeile "Applies to" für jede Einstellung im Abschnitt Argumente angegeben:

  • Löschen des Prozedurcaches.
  • Legen Sie den MAXDOP-Parameter auf einen empfohlenen Wert (1, 2, ...) für die primäre Datenbank fest, basierend darauf, was für diese bestimmte Arbeitsauslastung am besten geeignet ist, und legen Sie einen anderen Wert für sekundäre Replikatdatenbanken fest, die von Berichtsabfragen verwendet werden. Eine Anleitung zur Auswahl eines MAXDOP finden Sie unter Serverkonfiguration: max. Grad der Parallelität.
  • Festlegen des Kardinalitätsschätzungsmodells für den Abfrageoptimierer unabhängig von der Datenbank auf den Kompatibilitätsgrad.
  • Aktivieren oder Deaktivieren der Parameterermittlung auf Datenbankebene.
  • Aktivieren oder Deaktivieren der Abfrageoptimierungs-Hotfixes auf Datenbankebene.
  • Aktivieren oder Deaktivieren des Identitätscache auf Datenbankebene.
  • Aktivieren oder Deaktivieren eines Stubs des kompilierten Plans, der bei der erstmaligen Kompilierung eines Batches im Cache gespeichert werden soll.
  • Aktivieren oder Deaktivieren der Sammlung von Ausführungsstatistiken für nativ kompilierte Transact-SQL-Module.
  • Aktivieren oder Deaktivieren von „online by default“-Optionen (Standardmäßig online) für DDL-Anweisungen, die die ONLINE =-Syntax unterstützen.
  • Aktivieren oder Deaktivieren von „resumable by default“-Optionen (Standardmäßig fortsetzbar) für DDL-Anweisungen, die die RESUMABLE =-Syntax unterstützen.
  • Aktivieren oder Deaktivieren der Features der intelligenten Abfrageverarbeitung
  • Aktivieren oder Deaktivieren des beschleunigten Erzwingens des Plans.
  • Aktivieren oder Deaktivieren der Autodrop-Funktionalität von globalen temporären Tabellen.
  • Aktivieren oder Deaktivieren der einfachen Profilerstellungsinfrastruktur für Abfragen
  • Aktivieren oder Deaktivieren der neuen String or binary data would be truncated-Fehlermeldung
  • Aktivieren oder Deaktivieren des letzten tatsächlichen Ausführungsplans in sys.dm_exec_query_plan_stats
  • Geben Sie die Anzahl der Minuten an, in denen eine pausierte, wiederverwendete Indexoperation pausiert wird, bevor sie automatisch von der Datenbank-Engine abgebrochen wird.
  • Aktivieren oder Deaktivieren des Wartens auf Sperren mit niedriger Priorität für asynchrone Statistikupdates.
  • Aktivieren oder Deaktivieren des Hochladens von Ledgerdigests in Azure Blob Storage
  • Setze die Standard-Volltext-Indexversion (1 oder 2).

Diese Einstellung ist nur in Azure Synapse Analytics verfügbar.

  • Festlegen des Kompatibilitätsgrads von Benutzerdatenbanken

Transact-SQL-Syntaxkonventionen

Syntax

Syntax für SQL Server, Azure SQL Database und Azure SQL Managed Instance:

ALTER DATABASE SCOPED CONFIGURATION
{
    { [ FOR SECONDARY ] SET <set_options> }
}
| CLEAR PROCEDURE_CACHE [plan_handle]
| SET < set_options >
[;]

< set_options > ::=
{
    MAXDOP = { <value> | PRIMARY }
    | LEGACY_CARDINALITY_ESTIMATION = { ON | OFF | PRIMARY }
    | PARAMETER_SNIFFING = { ON | OFF | PRIMARY }
    | QUERY_OPTIMIZER_HOTFIXES = { ON | OFF | PRIMARY }
    | IDENTITY_CACHE = { ON | OFF }
    | INTERLEAVED_EXECUTION_TVF = { ON | OFF }
    | BATCH_MODE_MEMORY_GRANT_FEEDBACK = { ON | OFF }
    | BATCH_MODE_ADAPTIVE_JOINS = { ON | OFF }
    | TSQL_SCALAR_UDF_INLINING = { ON | OFF }
    | ELEVATE_ONLINE = { OFF | WHEN_SUPPORTED | FAIL_UNSUPPORTED }
    | ELEVATE_RESUMABLE = { OFF | WHEN_SUPPORTED | FAIL_UNSUPPORTED }
    | OPTIMIZE_FOR_AD_HOC_WORKLOADS = { ON | OFF }
    | XTP_PROCEDURE_EXECUTION_STATISTICS = { ON | OFF }
    | XTP_QUERY_EXECUTION_STATISTICS = { ON | OFF }
    | ROW_MODE_MEMORY_GRANT_FEEDBACK = { ON | OFF }
    | MEMORY_GRANT_FEEDBACK_PERCENTILE_GRANT = { ON | OFF }
    | MEMORY_GRANT_FEEDBACK_PERSISTENCE = { ON | OFF }
    | BATCH_MODE_ON_ROWSTORE = { ON | OFF }
    | DEFERRED_COMPILATION_TV = { ON | OFF }
    | ACCELERATED_PLAN_FORCING = { ON | OFF }
    | GLOBAL_TEMPORARY_TABLE_AUTO_DROP = { ON | OFF }
    | LIGHTWEIGHT_QUERY_PROFILING = { ON | OFF }
    | VERBOSE_TRUNCATION_WARNINGS = { ON | OFF }
    | LAST_QUERY_PLAN_STATS = { ON | OFF }
    | PAUSED_RESUMABLE_INDEX_ABORT_DURATION_MINUTES = <time>
    | ISOLATE_SECURITY_POLICY_CARDINALITY  = { ON | OFF }
    | EXEC_QUERY_STATS_FOR_SCALAR_FUNCTIONS = { ON | OFF }
    | ASYNC_STATS_UPDATE_WAIT_AT_LOW_PRIORITY = { ON | OFF }
    | OPTIMIZED_PLAN_FORCING = { ON | OFF }
    | DOP_FEEDBACK = { ON | OFF }
    | CE_FEEDBACK = { ON | OFF }
    | PARAMETER_SENSITIVE_PLAN_OPTIMIZATION = { ON | OFF }
    | LEDGER_DIGEST_STORAGE_ENDPOINT = { <endpoint URL string> | OFF }
    | OPTIMIZED_SP_EXECUTESQL = { ON | OFF }
    | OPTIONAL_PARAMETER_PLAN_OPTIMIZATION = { ON | OFF }
    | ALLOW_STALE_VECTOR_INDEX = { ON | OFF }
    | PREVIEW_FEATURES = { ON | OFF }
    | FULLTEXT_INDEX_VERSION = <version>
}

Syntax für Azure Synapse Analytics:

ALTER DATABASE SCOPED CONFIGURATION
{
    SET <set_options>
}
[;]

< set_options > ::=
{
    DW_COMPATIBILITY_LEVEL = { AUTO | 10 | 20 | 30 | 40 | 50 | 9000 }
}

Arguments

FÜR SEKUNDÄRE

Gibt die Einstellungen für sekundäre Datenbanken an (alle sekundären Datenbanken müssen identische Werte aufweisen).

CLEAR-PROCEDURE_CACHE [plan_handle]

Löscht den Prozedurcache (Plan) für die Datenbank und kann sowohl in den primären als auch den sekundären Datenbanken ausgeführt werden.

Geben Sie ein Abfrageplanhandle an, um einen einzelnen Abfrageplan aus dem Plancache zu löschen.

Gilt für: Die Angabe eines Abfrageplan-Handles ist in SQL Server 2019 (15.x) und späteren Versionen, Azure SQL Database und Azure SQL Managed Instance verfügbar.

MAXDOP = {<Wert> | PRIMARY }

<Wert>

Gibt die Standardeinstellung Max. Grad an Parallelität (MAXDOP) an, die für Anweisungen verwendet werden sollte. 0 ist der Standardwert und gibt an, dass stattdessen die Serverkonfiguration verwendet wird. Der MAXDOP im Datenbankumfang überschreibt (sofern er nicht auf 0 gesetzt ist) den max degree of parallelism Wert auf Serverebene um sp_configure. Abfragehinweise können die MAXDOP-Einstellung im Datenbankbereich weiterhin überschreiben, damit bestimmte Abfragen optimiert werden können, für die andere Einstellungen erforderlich sind. Alle diese Einstellungen sind durch das MAXDOP-Set für die Arbeitsgruppengruppe begrenzt.

Sie können mithilfe der MAXDOP-Option die Anzahl der Prozessoren beschränken, die für die Ausführung paralleler Pläne verwendet werden. SQL Server berücksichtigt die Ausführung paralleler Pläne für Abfragen, DDL-Indizierungsoperationen (Datendefinitionssprache, Data Definition Language, DDL), parallele Einfügevorgänge, Onlineausführung von ALTER COLUMN, parallele Sammlung von Statistiken sowie die statische und keysetgesteuerte Cursorauffüllung.

Der Grenzwert für Max. Grad an Parallelität wird taskbezogen festgelegt. Dieser Grenzwert gilt nicht pro Anforderung oder pro Abfrage. Das bedeutet, dass während einer parallelen Abfrageausführung eine einzelne Anfrage mehrere Aufgaben erzeugen kann, die einem Scheduler zugewiesen werden. Weitere Informationen finden Sie im Leitfaden zur Thread- und Aufgabenarchitektur.

Um diese Option auf Instanzebene festzulegen, siehe Serverkonfiguration: maximaler Grad an Parallelität.

In Azure SQL-Datenbank ist die datenbankweite Konfiguration von MAXDOP für neue Singletons und elastische Datenbanken in Pools standardmäßig auf 8 begrenzt. Weitere Informationen und Empfehlungen zum optimalen Konfigurieren von MAXDOP in azure SQL-Datenbank finden Sie unter Konfigurieren von MAXDOP in Azure SQL-Datenbank.

Tip

Verwenden Sie den AbfragehinweisMAXDOP, um dies auf Abfrageebene zu erreichen.
Verwenden Sie den MAXDOP-Wert (maximaler Parallelitätsgrad) der Serverkonfigurationsoption, um dies auf Serverebene zu erreichen.
Verwenden Sie die Resource Governor-Konfigurationsoption MAX_DOP für die Arbeitsauslastungsgruppe, um dies auf Arbeitsauslastungsebene zu erreichen.

PRIMARY

Kann nur für die Secondärdateien festgelegt werden, während sich die Datenbank in der primären Datei befindet, und gibt an, dass die Konfiguration die für die primäre Datei festgelegt ist. Wenn sich die Konfiguration für die primäre Datenbank ändert, ändert sich der Wert für die sekundären Datenbanken entsprechend, ohne dass dieser Wert explizit festgelegt werden muss. PRIMARY ist die Standardeinstellung für die sekundären Datenbanken.

LEGACY_CARDINALITY_ESTIMATION = { ON | AUS | PRIMARY }

Damit können Sie das Kardinalitätsschätzungsmodell für den Abfrageoptimierer unabhängig vom Kompatibilitätsgrad der Datenbank in SQL Server 2012 und früheren Versionen festlegen. Der Standardwert ist OFF, wodurch das Abfrageoptimierer-Kardinalitätsschätzungsmodell basierend auf der Kompatibilitätsebene der Datenbank festgelegt wird. Die Einstellung LEGACY_CARDINALITY_ESTIMATION entspricht ON dem Aktivieren des Ablaufverfolgungskennzeichnungs 9481.

Tip

Fügen Sie den AbfragehinweisQUERYTRACEON hinzu, um dies auf Abfrageebene zu erreichen.

Um dies auf Abfrageebene in SQL Server 2016 (13.x) mit Service Pack 1 und neueren Versionen zu erreichen, fügen Sie den Abfragehinweis USE HINT hinzu, anstatt das Trace-Flag zu verwenden.

PRIMARY

Dieser Wert ist nur für Secondärdateien gültig, während sich die Datenbank in der primären Datenbank befindet, und gibt an, dass die Einstellung des Abfrageoptimierer-Kardinalitätsschätzungsmodells für alle Secondärdateien der Wert ist, der für die primäre Datei festgelegt ist. Wenn sich die Konfiguration für die primäre Konfiguration des Abfrageoptimierer-Kardinalitätsschätzungsmodells ändert, ändert sich der Wert für die Secondaries entsprechend. PRIMARY ist die Standardeinstellung für die sekundären Datenbanken.

PARAMETER_SNIFFING = { ON | AUS | PRIMARY }

Aktiviert oder deaktiviert die Parameterermittlung. Der Standardwert ist ON. Die Einstellung PARAMETER_SNIFFING entspricht OFF der Aktivierung des Ablaufverfolgungskennzeichnungs 4136.

Tip

Dies auf Abfrageebene finden Sie im OPTIMIZE FOR UNKNOWNAbfragehinweis.

In SQL Server 2016 (13.x) SP1 und höher ist dies auf Abfrageebene auch der USE HINTAbfragehinweis verfügbar, verfügbar ist.

PRIMARY

Dieser Wert ist nur für sekundäre Datenbanken gültig, während die betreffende Datenbank primär ist, und gibt an, dass es sich bei dem Wert für diese Einstellung für alle sekundären Datenbanken um den für die primäre Datenbank festgelegten Wert handelt. Wenn sich die Konfiguration auf der primären Seite für die Verwendung Parameters ändert, geändert wird, ändert sich der Wert für die Secondaries entsprechend, ohne dass der Wert der Secondaries explizit festgelegt werden muss. PRIMARY ist die Standardeinstellung für die sekundären Datenbanken.

QUERY_OPTIMIZER_HOTFIXES = { ON | AUS | PRIMARY }

Aktiviert oder deaktiviert Hotfixes für die Abfrageoptimierung unabhängig vom Kompatibilitätsgrad der Datenbank. Der Standardwert ist OFF, wodurch Abfrageoptimierungs-Hotfixes deaktiviert werden, die nach der Einführung der höchsten verfügbaren Kompatibilitätsstufe für eine bestimmte Version (post-RTM) veröffentlicht wurden. Das Festlegen auf ON diese Einstellung entspricht dem Aktivieren des Ablaufverfolgungskennzeichnungs 4199.

Gilt für: SQL Server 2016 (13.x) und spätere Versionen, Azure SQL Database und Azure SQL Managed Instance

Tip

Fügen Sie den AbfragehinweisQUERYTRACEON hinzu, um dies auf Abfrageebene zu erreichen.

Um dies auf Abfrageebene in SQL Server 2016 (13.x) mit Service Pack 1 und neueren Versionen zu erreichen, fügen Sie den Abfragehinweis USE HINT hinzu, anstatt das Trace-Flag zu verwenden.

PRIMARY

Dieser Wert ist nur für sekundäre Datenbanken gültig, während die betreffende Datenbank primär ist, und gibt an, dass es sich bei dem Wert für diese Einstellung für alle sekundären Datenbanken um den für die primäre Datenbank festgelegten Wert handelt. Wenn sich die Konfiguration für die primäre Datenbank ändert, ändert sich der Wert für die sekundären Datenbanken entsprechend, ohne dass dieser Wert explizit festgelegt werden muss. PRIMARY ist die Standardeinstellung für die sekundären Datenbanken.

IDENTITY_CACHE = { ON | FALSCH }

Gilt für: SQL Server 2017 (14.x) und höhere Versionen, Azure SQL-Datenbank und azure SQL Managed Instance

Aktiviert oder deaktiviert den Identitätscache auf Datenbankebene. Der Standardwert ist ON. Identitätszwischenspeichern wird verwendet, um die Leistung von INSERT in Tabellen mit Identitätsspalten zu verbessern. Um Lücken in den Werten einer Identitätsspalte in Fällen zu vermeiden, in denen der Server unerwartet neu gestartet wird oder auf einem sekundären Server fehlschlägt, deaktivieren Sie die Option IDENTITY_CACHE. Diese Option ähnelt dem vorhandenen Ablaufverfolgungskennzeichnung 272, mit der Ausnahme, dass sie auf Datenbankebene und nicht nur auf Serverebene festgelegt werden kann.

Note

Diese Option kann nur für PRIMARY festgelegt werden. Weitere Informationen finden Sie unter Identitätsspalten.

INTERLEAVED_EXECUTION_TVF = { ON | FALSCH }

gilt für: SQL Server 2019 (15.x) und höhere Versionen, Azure SQL-Datenbank und azure SQL Managed Instance

Ermöglicht Ihnen das Aktivieren bzw. Deaktivieren der verschachtelten Ausführung für Tabellenwertfunktionen mit mehreren Anweisungen im Datenbank- oder Anweisungsbereich. Dabei kann ein Datenbank-Kompatibilitätsgrad von mindestens 140 beibehalten werden. Der Standardwert ist ON. Verschachtelte Funktionen stellen ein Feature der adaptiven Abfrageverarbeitung in Azure SQL-Datenbank dar. Weitere Informationen finden Sie unter Intelligente Abfrageverarbeitung in SQL-Datenbanken.

Note

Für Datenbank-Kompatibilitätsgrade von 130 oder weniger hat diese datenbankbezogene Konfiguration keine Auswirkungen.

Nur in SQL Server 2017 (14.x) wurde für die Option INTERLEAVED_EXECUTION_TVF der ältere Name DISABLE_INTERLEAVED_EXECUTION_TVF verwendet.

BATCH_MODE_MEMORY_GRANT_FEEDBACK = { ON | FALSCH }

gilt für: SQL Server 2019 (15.x) und höhere Versionen, Azure SQL-Datenbank und azure SQL Managed Instance

Ermöglicht Ihnen das Aktivieren bzw. Deaktivieren von Feedback zur Speicherzuweisung im Batchmodus im Datenbankbereich. Dabei kann ein Datenbank-Kompatibilitätsgrad von mindestens 140 beibehalten werden. Der Standardwert ist ON. Das Feedback zur Speicherzuweisung im Batchmodus stellt einen Bestandteil der Suite mit Features zur intelligenten Abfrageverarbeitung dar, die in SQL Server 2017 (14.x) eingeführt wurde. Weitere Informationen finden Sie unter Feedback zur Speicherzuweisung.

Note

Für Datenbank-Kompatibilitätsgrade von 130 oder weniger hat diese datenbankbezogene Konfiguration keine Auswirkungen.

BATCH_MODE_ADAPTIVE_JOINS = { ON | FALSCH }

gilt für: SQL Server 2019 (15.x) und höhere Versionen, Azure SQL-Datenbank und azure SQL Managed Instance

Ermöglicht Ihnen das Aktivieren bzw. Deaktivieren von adaptiven Joins im Batchmodus im Datenbankbereich. Dabei kann ein Datenbank-Kompatibilitätsgrad von mindestens 140 beibehalten werden. Der Standardwert ist ON. Adaptive Joins im Batchmodus stellen einen Bestandteil der intelligenten Abfrageverarbeitung dar, die in SQL Server 2017 (14.x) eingeführt wurde.

Note

Für Datenbank-Kompatibilitätsgrade von 130 oder weniger hat diese datenbankbezogene Konfiguration keine Auswirkungen.

TSQL_SCALAR_UDF_INLINING = { ON | FALSCH }

Gilt für: SQL Server 2019 (15.x) und neuere Versionen sowie Azure SQL Database (Funktion ist in der Vorschau)

Ermöglicht Ihnen das Aktivieren bzw. Deaktivieren des Inlining benutzerdefinierter T-SQL-Skalarfunktionen im Datenbankbereich. Dabei kann ein Datenbank-Kompatibilitätsgrad von mindestens 150 beibehalten werden. Der Standardwert ist ON. Das Inlining von benutzerdefinierten T-SQL-Skalarfunktionen gehört zur Featurefamilie der intelligenten Abfrageverarbeitung.

Note

Für Datenbank-Kompatibilitätsgrade von 140 oder weniger hat diese datenbankbezogene Konfiguration keine Auswirkungen.

ELEVATE_ONLINE = { OFF | WHEN_SUPPORTED | FAIL_UNSUPPORTED }

gilt für: SQL Server 2019 (15.x) und höhere Versionen, Azure SQL-Datenbank und azure SQL Managed Instance

Ermöglicht es Ihnen, Optionen auszuwählen, die das Modul dazu veranlassen, unterstützte Vorgänge automatisch in den Onlinezustand zu erhöhen. Der Standardwert ist OFF, was bedeutet, dass Vorgänge nicht online erhöht werden, es sei denn, sie sind in der Anweisung angegeben. sys.database_scoped_configurations entspricht dem aktuellen Wert von ELEVATE_ONLINE. Diese Optionen gelten nur für Vorgänge, die für online unterstützt werden.

FAIL_UNSUPPORTED

Dieser Wert erhöht alle unterstützten DDL-Vorgänge in ONLINE. Vorgänge, die die Onlineausführung nicht unterstützen, schlagen fehl und lösen einen Fehler aus.

Note

Im Allgemeinen erfolgt das Hinzufügen einer Spalte zu einer Tabelle in einem Onlinevorgang. In einigen Szenarien, z. B. wenn Hinzufügen einer nicht nullfähigen Spalte, kann eine Spalte nicht online hinzugefügt werden. In diesen Fällen schlägt der Vorgang fehl, wenn FAIL_UNSUPPORTED festgelegt ist.

WHEN_SUPPORTED

Dieser Wert erhöht Vorgänge, die ONLINE unterstützen. Vorgänge, die online nicht unterstützt werden, werden offline ausgeführt.

Note

Sie können die Standardeinstellung überschreiben, indem Sie eine Anweisung senden, in der die ONLINE-Option angegeben ist.

ELEVATE_RESUMABLE = { OFF | WHEN_SUPPORTED | FAIL_UNSUPPORTED }

gilt für: SQL Server 2019 (15.x) und höhere Versionen, Azure SQL-Datenbank und azure SQL Managed Instance

Ermöglicht es Ihnen, Optionen auszuwählen, die das Modul dazu veranlassen, unterstützte Vorgänge automatisch in fortsetzbar zu erhöhen. Der Standardwert ist OFF, was bedeutet, dass Vorgänge nicht zur Fortsetzung erhöht werden können, es sei denn, dies ist in der Anweisung angegeben. sys.database_scoped_configurations entspricht dem aktuellen Wert von ELEVATE_RESUMABLE. Diese Optionen gelten nur für Vorgänge, die für fortsetzbar unterstützt werden.

FAIL_UNSUPPORTED

Dieser Wert erhöht alle unterstützten DDL-Vorgänge in RESUMABLE. Vorgänge, die die reaktivierbare Ausführung nicht unterstützen, schlagen fehl und lösen einen Fehler aus.

WHEN_SUPPORTED

Dieser Wert erhöht Vorgänge, die RESUMABLE unterstützen. Vorgänge, die die Fortsetzung nicht unterstützen, werden nicht umsetzbar ausgeführt.

Note

Sie können die Standardeinstellung überschreiben, indem Sie eine Anweisung senden, in der die RESUMABLE-Option angegeben ist.

OPTIMIZE_FOR_AD_HOC_WORKLOADS = { ON | FALSCH }

gilt für: SQL Server 2019 (15.x) und höhere Versionen, Azure SQL-Datenbank und azure SQL Managed Instance

Aktiviert oder deaktiviert einen Stub des kompilierten Plans, der bei der erstmaligen Kompilierung eines Batches im Cache gespeichert werden soll. Der Standardwert ist OFF. Sobald die datenbankbereichsbezogene Konfiguration OPTIMIZE_FOR_AD_HOC_WORKLOADS für eine Datenbank aktiviert ist, wird ein kompilierter Plan-Stub im Cache gespeichert, wenn ein Batch zum ersten Mal kompiliert wird. Planstubs weisen im Vergleich zur Größe des vollständigen kompilierten Plans einen niedrigeren Speicherbedarf auf. Wenn ein Batch kompiliert oder erneut ausgeführt wird, wird der kompilierte Plan-Stub entfernt und durch einen vollständig kompilierten Plan ersetzt.

XTP_PROCEDURE_EXECUTION_STATISTICS = { ON | FALSCH }

Gilt für: Azure SQL-Datenbank und Azure SQL Managed Instance

Aktiviert oder deaktiviert die Sammlung von Ausführungsstatistiken auf Modulebene für nativ kompilierte T-SQL-Module in der aktuellen Datenbank. Der Standardwert ist OFF. Die Ausführungsstatistiken werden in sys.dm_exec_procedure_stats wiedergegeben.

Ausführungsstatistiken auf Modulebene für nativ kompilierte T-SQL-Module werden gesammelt, wenn diese Option auf „ON“ festgelegt ist, oder die Sammlung von Statistiken durch sp_xtp_control_proc_exec_stats aktiviert ist.

XTP_QUERY_EXECUTION_STATISTICS = { ON | FALSCH }

Gilt für: Azure SQL-Datenbank und Azure SQL Managed Instance

Aktiviert oder deaktiviert die Sammlung von Ausführungsstatistiken auf Anweisungsebene für nativ kompilierte T-SQL-Module in der aktuellen Datenbank. Der Standardwert ist OFF. Die Ausführungsstatistik wird in sys.dm_exec_query_stats und im Abfragespeicher wiedergegeben.

Ausführungsstatistiken auf Anweisungsebene für nativ kompilierte T-SQL-Module werden erfasst, wenn diese Option ONist oder wenn die Statistiksammlung über sp_xtp_control_query_exec_statsaktiviert ist.

Weitere Informationen zur Leistungsüberwachung nativer kompilierter Transact-SQL-Module finden Sie unter Monitoring Performance of Natively Compiled Stored Procedures.

ROW_MODE_MEMORY_GRANT_FEEDBACK = { ON | FALSCH }

gilt für: SQL Server 2019 (15.x) und höhere Versionen, Azure SQL-Datenbank und azure SQL Managed Instance

Ermöglicht Ihnen das Aktivieren bzw. Deaktivieren von Feedback zur Speicherzuweisung im Zeilenmodus im Datenbankbereich. Dabei kann ein Datenbank-Kompatibilitätsgrad von mindestens 150 beibehalten werden. Der Standardwert ist ON. Das Feedback zur Speicherzuweisung im Zeilenmodus stellt einen Bestandteil der intelligenten Abfrageverarbeitung dar, die in SQL Server 2017 (14.x) eingeführt wurde. Der Zeilenmodus wird in SQL Server 2019 (15.x) und Azure SQL-Datenbank unterstützt. Weitere Informationen zum Feedback zur Speicherzuweisung finden Sie unter Feedback zur Speicherzuweisung.

Note

Für Datenbank-Kompatibilitätsgrade von 140 oder weniger hat diese datenbankbezogene Konfiguration keine Auswirkungen.

MEMORY_GRANT_FEEDBACK_PERCENTILE_GRANT = { ON | FALSCH }

Gilt für: SQL Server 2022 (16.x) und höhere Versionen und Azure SQL-Datenbank

Ermöglicht das Deaktivieren des Perzentils für das Feedback zur Speicherzuweisung für alle Abfrageausführungen, die von der Datenbank stammen. Der Standardwert ist ON. Vollständige Informationen finden Sie unter Feedback zur Speicherzuweisung im Perzentil- und Persistenzmodus.

Note

Für Datenbank-Kompatibilitätsgrade von 140 oder weniger hat diese datenbankbezogene Konfiguration keine Auswirkungen.

MEMORY_GRANT_FEEDBACK_PERSISTENCE = { ON | FALSCH }

gilt für: SQL Server 2022 (16.x) und höhere Versionen, Azure SQL-Datenbank und azure SQL Managed Instance

Ermöglicht das Deaktivieren der Persistenz für das Feedback zur Speicherzuweisung für alle Abfrageausführungen, die von der Datenbank stammen. Der Standardwert ist ON. Vollständige Informationen finden Sie unter Feedback zur Speicherzuweisung im Perzentil- und Persistenzmodus.

Note

Für Datenbank-Kompatibilitätsgrade von 140 oder weniger hat diese datenbankbezogene Konfiguration keine Auswirkungen.

BATCH_MODE_ON_ROWSTORE = { ON | FALSCH }

gilt für: SQL Server 2019 (15.x) und höhere Versionen, Azure SQL-Datenbank und azure SQL Managed Instance

Ermöglicht Ihnen das Aktivieren bzw. Deaktivieren des Batchmodus bei Rowstore im Datenbankbereich. Dabei kann ein Datenbank-Kompatibilitätsgrad von mindestens 150 beibehalten werden. Der Standardwert ist ON. Der Batchmodus bei Rowstore gehört zur Funktionsfamilie für die intelligente Abfrageverarbeitung.

Note

Für Datenbank-Kompatibilitätsgrade von 140 oder weniger hat diese datenbankbezogene Konfiguration keine Auswirkungen.

DEFERRED_COMPILATION_TV = { ON | FALSCH }

gilt für: SQL Server 2019 (15.x) und höhere Versionen, Azure SQL-Datenbank und azure SQL Managed Instance

Ermöglicht Ihnen das Aktivieren bzw. Deaktivieren der verzögerten Kompilierung von Tabellenvariablen im Datenbankbereich. Dabei kann ein Datenbank-Kompatibilitätsgrad von mindestens 150 beibehalten werden. Der Standardwert ist ON. Die verzögerte Kompilierung von Tabellenvariablen gehört zur Funktionsfamilie für die intelligente Abfrageverarbeitung.

Note

Für Datenbank-Kompatibilitätsgrade von 140 oder weniger hat diese datenbankbezogene Konfiguration keine Auswirkungen.

ACCELERATED_PLAN_FORCING = { ON | FALSCH }

gilt für: SQL Server 2019 (15.x) und höhere Versionen, Azure SQL-Datenbank und azure SQL Managed Instance

Aktiviert einen optimierten Mechanismus für das Erzwingen von Abfrageplänen, der sich auf alle Formen des Erzwingens von Plänen anwenden lässt, wie etwa Query Store Force Plan, Automatische Optimierung oder den Abfragehinweis USE PLAN. Der Standardwert ist ON.

Note

Es wird nicht empfohlen, beschleunigte Planzwingung zu deaktivieren.

GLOBAL_TEMPORARY_TABLE_AUTO_DROP = { ON | FALSCH }

gilt für: SQL Server 2019 (15.x) und höhere Versionen, Azure SQL-Datenbank und azure SQL Managed Instance

Ermöglicht das Festlegen der Autodrop-Funktionalität für globale temporäre Tabellen. Der Standardwert ist ON, was bedeutet, dass die globalen temporären Tabellen automatisch gelöscht werden, wenn sie nicht von einer Sitzung oder Aufgabe verwendet werden. Wenn diese Einstellung auf OFFfestgelegt ist, können globale temporäre Tabellen nur mithilfe einer DROP TABLE-Anweisung explizit gelöscht oder beim Neustart des Datenbankmoduls automatisch gelöscht werden.

  • In einzelnen Datenbanken und elastischen Pools in Azure SQL-Datenbank wird diese Option in den einzelnen Benutzerdatenbanken festgelegt.
  • In SQL Server und azure SQL Managed Instance muss diese Option in tempdbfestgelegt werden. Die Einstellung in einzelnen Benutzerdatenbanken hat keine Auswirkung.

LIGHTWEIGHT_QUERY_PROFILING = { ON | FALSCH }

gilt für: SQL Server 2019 (15.x) und höhere Versionen, Azure SQL-Datenbank und azure SQL Managed Instance

Ermöglicht das Aktivieren oder Deaktivieren der einfachen Profilerstellungsinfrastruktur für Abfragen Die LWP-Abfrageinfrastruktur (Lightweight Profiling) stellt Abfrageleistungsdaten effizienter bereit als standardmäßige Profilerstellungsmechanismen. Sie ist standardmäßig aktiviert. Der Standardwert ist ON.

VERBOSE_TRUNCATION_WARNINGS = { ON | FALSCH }

gilt für: SQL Server 2019 (15.x) und höhere Versionen, Azure SQL-Datenbank und azure SQL Managed Instance

Ermöglicht Ihnen das Aktivieren oder Deaktivieren der neuen String or binary data would be truncated-Fehlermeldung. Der Standardwert ist ON. SQL Server 2019 (15.x) führt eine neue, spezifischere Fehlermeldung (2628) für dieses Szenario ein:

String or binary data would be truncated in table '%.*ls', column '%.*ls'. Truncated value: '%.*ls'.

Wenn sie auf ON unter Datenbankkompatibilitätsebene 150 festgelegt ist, lösen Abkürzungsfehler die neue Fehlermeldung 2628 aus, um mehr Kontext bereitzustellen und den Problembehandlungsprozess zu vereinfachen.

Wenn sie auf OFF unter Datenbankkompatibilitätsebene 150 festgelegt ist, lösen Abkürzungsfehler die vorherige Fehlermeldung 8152 aus.

Für die Datenbankkompatibilitätsebene 140 oder niedriger bleibt die Fehlermeldung 2628 eine Opt-In-Fehlermeldung, die die Aktivierung des Ablaufverfolgungskennzeichnungs 460 erfordert, und diese Datenbankbereichskonfiguration hat keine Auswirkungen.

LAST_QUERY_PLAN_STATS = { ON | FALSCH }

gilt für: SQL Server 2019 (15.x) und höhere Versionen, Azure SQL-Datenbank und azure SQL Managed Instance

Ermöglicht Ihnen das Aktivieren oder Deaktivieren der Collection der Abfrageplanstatistiken (entspricht einem tatsächlichen Ausführungsplan) in sys.dm_exec_query_plan_stats. Der Standardwert ist OFF.

PAUSED_RESUMABLE_INDEX_ABORT_DURATION_MINUTES

gilt für: SQL Server 2022 (16.x) und höhere Versionen, Azure SQL-Datenbank und azure SQL Managed Instance

Die Option PAUSED_RESUMABLE_INDEX_ABORT_DURATION_MINUTES legt fest, wie lange (in Minuten) der fortsetzbare Index angehalten wird, bevor er automatisch von der Engine abgebrochen wird.

  • Der Standardwert ist auf einen Tag (1440 Minuten) festgelegt.
  • Die minimale Dauer ist auf 1 Minute gesetzt.
  • Die maximale Dauer beträgt 71.582 Minuten.
  • Bei Festlegung auf 0 wird ein angehaltener Vorgang nie automatisch abgebrochen.

Der aktuelle Wert für diese Option wird in sys.database_scoped_configurations angezeigt.

ISOLATE_SECURITY_POLICY_CARDINALITY = { ON | OFF}

gilt für: SQL Server 2019 (15.x) und höhere Versionen, Azure SQL-Datenbank und azure SQL Managed Instance

Ermöglicht es Ihnen zu kontrollieren, ob ein Row-Level Security (RLS)-Prädikat die Kardinalität des Ausführungsplans der gesamten Benutzeranfrage beeinflusst. Der Standardwert ist OFF. Wenn ISOLATE_SECURITY_POLICY_CARDINALITY ON ist, beeinflusst ein RLS-Prädikat nicht die Kardinalität eines Ausführungsplans. Angenommen, es gibt eine Tabelle mit 1 Million Zeilen und ein RLS-Prädikat, das das Ergebnis für einen bestimmten Benutzer, der die Abfrage durchführt, auf 10 Zeilen beschränkt. Wenn diese datenbankbereichsbezogene Konfiguration auf OFF festgelegt ist, beträgt die Kardinalitätsschätzung dieses Prädikats 10. Wenn diese Datenbankbereichskonfiguration aktiviert ist, schätzt die Abfrageoptimierung 1 Millionen Zeilen. Es wird empfohlen, für die meisten Workloads den Standardwert zu verwenden.

DW_COMPATIBILITY_LEVEL = { AUTO | 10 | 20 | 30 | 40 | 50 | 9000 }

Gilt nur für: Azure Synapse Analytics Only

Dieses Argument legt fest, dass das Transact-SQL- und Abfrageverarbeitungsverhalten jeweils mit der angegebenen Version der Datenbank-Engine kompatibel sein muss. Sobald sie festgelegt ist, werden beim Ausführen einer Abfrage in dieser Datenbank nur die kompatiblen Features ausgeübt. Bei jedem Kompatibilitätsgrad werden verschiedene Verbesserungen der Abfrageverarbeitung unterstützt. Jeder Grad übernimmt die Funktionalität des vorangehenden Grads. Beim Erstellen einer Datenbank wird für den Kompatibilitätsgrad standardmäßig AUTO festgelegt. Dies ist auch die empfohlene Einstellung. Der Kompatibilitätsgrad wird auch nach dem Anhalten/Fortsetzen einer Datenbank sowie Sicherungs-/Wiederherstellungsvorgängen beibehalten. Der Standardwert ist AUTO.

Kompatibilitätsstufe Comments
AUTO Default. Der Wert wird automatisch von der Synapse Analytics-Engine aktualisiert und wird von 0 in sys.database_scoped_configurations dargestellt. AUTO ist derzeit 30 Funktionalität auf Kompatibilitätsebene zugeordnet.
10 Bei diesem Wert wird das Transact-SQL- und Abfrage-Engine-Verhalten ausgeführt, bevor Unterstützung für den Kompatibilitätsgrad eingeführt wird.
20 Hierbei handelt es sich um den ersten Kompatibilitätsgrad mit geschlossenem Transact-SQL- und Abfrage-Engine-Verhalten. Die gespeicherte Systemprozedur sp_describe_undeclared_parameters wird unter diesem Grad unterstützt.
30 Dieser Wert bietet neue Verhaltensweisen der Abfrage-Engine.
40 Dieser Wert bietet neue Verhaltensweisen der Abfrage-Engine.
50 Unter dieser Ebene wird eine Mehrspaltenverteilung unterstützt. Um mehr zu erfahren, siehe TABELLE ERSTELLEN,TABELLE ERSTELLEN ALS AUSWAHL und MATERIALISIERTE ANSICHT ERSTELLEN.
9000 Vorschau für Kompatibilitätsgrad. Vorschaufeatures unter diesem Grad werden in der featurespezifischen Dokumentation beschrieben. Diese Stufe umfasst auch Fähigkeiten der höchsten Stufe ohne9000.

EXEC_QUERY_STATS_FOR_SCALAR_FUNCTIONS = { ON | FALSCH }

gilt für: SQL Server 2022 (16.x) und höhere Versionen, Azure SQL-Datenbank und azure SQL Managed Instance

Hiermit können Sie steuern, ob Ausführungsstatistiken für benutzerdefinierte Skalarfunktionen (UDF) in der Systemsicht sys.dm_exec_function_stats angezeigt werden. Bei einigen intensiven Workloads, die skalare UDF-schwer sind, kann das Sammeln von Funktionsausführungsstatistiken zu einem spürbaren Leistungsaufwand führen. Dies kann vermieden werden, indem die Konfiguration auf Datenbankebene, EXEC_QUERY_STATS_FOR_SCALAR_FUNCTIONS, auf OFF festgelegt wird. Der Standardwert ist ON.

ASYNC_STATS_UPDATE_WAIT_AT_LOW_PRIORITY = { ON | FALSCH }

gilt für: SQL Server 2022 (16.x) und höhere Versionen, Azure SQL-Datenbank und azure SQL Managed Instance

Wenn die asynchrone Statistikaktualisierung aktiviert ist, bewirkt die Aktivierung dieser Konfiguration, dass die Statistiken zum Aktualisieren von Hintergrundanforderungen auf eine Sperre in einer Sch-M Warteschlange mit niedriger Priorität warten, um zu vermeiden, dass andere Sitzungen in Szenarien mit hoher Parallelität blockiert werden. Weitere Informationen finden Sie unter AUTO_UPDATE_STATISTICS_ASYNC. Der Standardwert ist OFF.

OPTIMIZED_PLAN_FORCING = { ON | FALSCH }

Gilt für: SQL Server 2022 (16.x) und spätere Versionen, Azure SQL Database

Dadurch wird der Kompilierungsaufwand für wiederholte erzwungene Abfragen reduziert. Der Standardwert ist ON. Nachdem der Abfrageausführungsplan generiert wurde, werden bestimmte Kompilierungsschritte für eine Wiederverwendung als Replay-Optimierungsskript gespeichert. Ein Replay-Optimierungsskript wird als Teil des komprimierten Showplan-XML im Abfragespeicher in einem ausgeblendeten Attribut vom Typ OptimizationReplay gespeichert. Weitere Informationen finden Sie unter Erzwingen des optimierten Plans mit dem Abfragespeicher.

DOP_FEEDBACK = { ON | FALSCH }

Gilt für: SQL Server 2022 (16.x) und spätere Versionen, Azure SQL Database, Azure SQL Managed Instance mit dem SQL Server 2025 oder Always-up-to-Date-Update-Policy, SQL-Datenbank in Fabric

Identifiziert Ineffizienzen bei der Parallelität von sich wiederholenden Abfragen, basierend auf verstrichener Zeit und Wartevorgängen. Wenn die Parallelitätsnutzung als ineffizient erachtet wird, verringert das DOP-Feedback den DOP für die nächste Ausführung der Abfrage ausgehend vom konfigurierten DOP, und überprüft, ob dies hilfreich war. Erfordert die Aktivierung des Abfragespeichers und im READ_WRITE Modus. Weitere Informationen finden Sie unter DoP-Feedback (Grad of Parallelism). Der Standardwert ist OFF.

CE_FEEDBACK = { ON | FALSCH }

gilt für: SQL Server 2022 (16.x) und höhere Versionen, Azure SQL-Datenbank und azure SQL Managed Instance

Das Feedback zur Kardinalitätsschätzung befasst sich mit wahrgenommenen Regressionsproblemen, die sich aus falschen Modellannahmen der Kardinalitätsschätzung ergeben, wenn der Standardwert für die Kardinalitätsschätzung (CE120 oder höher) verwendet wird. Das Feedback kann selektiv unterschiedliche Modellannahmen verwenden. Erfordert die Aktivierung des Abfragespeichers und im READ_WRITE Modus. Weitere Informationen finden Sie unter Feedback zur Kardinalitätsschätzung (CE). Der Standardwert ist in der Datenbankkompatibilitätsebene 160 und höher ON.

PARAMETER_SENSITIVE_PLAN_OPTIMIZATION = { ON | FALSCH }

gilt für: SQL Server 2022 (16.x) und höhere Versionen, Azure SQL-Datenbank und azure SQL Managed Instance

Die Optimierung des Parameterempfindlichkeitsplans (PSP) behebt das Szenario, in dem ein einzelner zwischengespeicherter Plan für eine parametrisierte Abfrage für alle möglichen eingehenden Parameterwerte nicht optimal ist. Dies ist bei uneinheitlichen Datenverteilungen der Fall. Der Standardwert ist ON beginnend mit der Datenbankkompatibilitätsebene 160. Weitere Informationen finden Sie unter Optimierung des Parameterempfindlichkeitsplans.

LEDGER_DIGEST_STORAGE_ENDPOINT = { <Zeichenfolge_mit_Endpunkt-URL> | OFF }

Gilt für: SQL Server 2022 (16.x) und höhere Versionen

Aktiviert oder Deaktiviert das Hochladen von Ledgerdigests in Azure Blob Storage. Geben Sie den Endpunkt eines Azure Blob Storage-Kontos an, um das Hochladen von Ledgerdigests zu ermöglichen. Um das Hochladen von Hauptbuchdigesten zu deaktivieren, legen Sie den Optionswert auf OFFfest. Der Standardwert ist OFF.

FORCE_SHOWPLAN_RUNTIME_PARAMETER_COLLECTION = { ON | FALSCH }

gilt für: SQL Server 2022 (16.x) und höhere Versionen, Azure SQL-Datenbank und azure SQL Managed Instance

Veranlasst SQL Server zum Generieren eines Showplan-XML-Fragments mit „ParameterRuntimeValue“ beim Verwenden der einfachen Profilerstellungsinfrastruktur für Abfrageausführungsstatistiken oder beim Ausführen der sys.dm_exec_query_statistics_xml-DMV während der Problembehandlung zeitintensiver Abfragen

Important

Die FORCE_SHOWPLAN_RUNTIME_PARAMETER_COLLECTION Konfigurationsoption mit Datenbankbereich soll nicht kontinuierlich in einer Produktionsumgebung aktiviert werden, sondern nur für zeitlich begrenzte Problembehandlungszwecke. Die Verwendung dieser Konfigurationsoption mit Datenbankbereich führt zu einem zusätzlichen und möglicherweise erheblichen CPU- und Arbeitsspeicheraufwand, da wir ein Showplan-XML-Fragment mit Laufzeitparameterinformationen erstellen, unabhängig davon, ob die sys.dm_exec_query_statistics_xml DMV- oder einfache Abfrageausführungsstatistik-Profilinfrastruktur aktiviert ist oder nicht.

OPTIMIZED_SP_EXECUTESQL = { ON | FALSCH }

Gilt für: SQL Server 2025 (17.x), Azure SQL Database und SQL-Datenbank in Microsoft Fabric

Aktiviert oder deaktiviert das Serialisierungsverhalten der Kompilierung von sp_executesql, wenn ein Batch kompiliert wird. Der Standardwert ist OFF. Die Erlaubnis von Chargen, die den Kompilierungsprozess zur sp_executesql Serialisierung verwenden, verringert die Wirkung von Kompilierungsstürmen. Ein Kompilierungssturm ist eine Situation, in der eine große Anzahl von Abfragen gleichzeitig kompiliert wird, was zu Leistungsproblemen und Ressourcenkonflikten führt.

Wenn OPTIMIZED_SP_EXECUTESQLONist, kompiliert die erste Ausführung von sp_executesql kompiliert und fügt den kompilierten Plan in den Plancache ein. Andere Sitzungen werden abgebrochen, wenn sie auf die Kompilierungssperre warten und den Plan wiederverwenden, sobald er verfügbar ist. Auf diese Weise können sp_executesql sich wie Objekte wie gespeicherte Prozeduren und Trigger aus Kompilierungsperspektive verhalten.

OPTIONAL_PARAMETER_PLAN_OPTIMIZATION = { ON | FALSCH }

Gilt für: SQL Server 2025 (17.x)

Aktiviert oder deaktiviert die Funktion zur optionalen Parameterplanoptimierung (OPPO). Der Standardwert ist ON.

Wenn diese Option aktiviert ist, generiert die Optimierung des adaptiven Plans mehrere Ausführungspläne für Abfragen, die optionale Parameter enthalten. Diese Pläne werden in der Regel mithilfe von Prädikaten in Form von:

  • @p IS NULL AND @p1 IS NOT NULL
  • @p IS NULL OR @p1 IS NOT NULL

Das Feature kann zur Laufzeit einen optimalen Plan auswählen, je nachdem, ob der Parameter ist, wodurch die Leistung für Abfragen verbessert wird NULL, die andernfalls standardmäßig die suboptimale Leistung für solche Abfragemuster aufweisen könnten.

Der Standardwert beginnt ON in der Datenbankkompatibilitätsebene 170.

ALLOW_STALE_VECTOR_INDEX = { ON | FALSCH }

Gilt für: Azure SQL-Datenbank und SQL-Datenbank in Microsoft Fabric

Derzeit machen Vektorindizes in Azure SQL Database und SQL Database in Microsoft Fabric Tabellen schreibgeschützt. Um die Tabelle beschreibbar zu machen, verwenden Sie die ALLOW_STALE_VECTOR_INDEX Datenbank-Scoped-Konfiguration.

ALTER DATABASE SCOPED CONFIGURATION
SET ALLOW_STALE_VECTOR_INDEX = ON;
GO

SELECT *
FROM sys.database_scoped_configurations
WHERE [name] = 'ALLOW_STALE_VECTOR_INDEX';

Der Vektorindex wird nicht aktualisiert, wenn neue Daten eingefügt oder in die Tabelle aktualisiert werden. Um den Vektorindex zu aktualisieren, müssen Sie ihn entfernen und neu erstellen.

Note

Die ALLOW_STALE_VECTOR_INDEX Datenbank-Scoped-Konfigurationsoption ist derzeit in SQL Server 2025 (17.x) nicht verfügbar.

FULLTEXT_INDEX_VERSION

Gilt für: SQL Server 2025 (17.x) und spätere Versionen, Azure SQL Database und Azure SQL Managed Instance

Legt die Volltext-Indexversion zur Verwendung beim Erstellen oder Neuaufbau von Indizes fest. Diese Konfiguration tritt nur in Kraft, wenn Sie entweder eine CREATE FULLTEXT INDEX Anweisung für neue Indizes oder eine ALTER FULLTEXT CATALOG ... REBUILD Anweisung zum Neuaufbau aller Indizes in einem Katalog ausgeben.

Ab SQL Server 2025 (17.x) sind die verfügbaren Versionen:

Version Comments
1 Spezifiziert neue und neu aufgebaute Indizes, die die alten Volltextfilter- und Wortbrecherkomponenten aus SQL Server 2022 (16.x) und früheren Versionen verwenden, für zukünftige Populationen und Abfragen. Da diese Komponenten in SQL Server 2025 (17.x) und späteren Versionen nicht mehr enthalten sind, müssen sie manuell aus einer älteren Instanz kopiert werden.
2 (Standardwert) Spezifiziert neue und neu aufgebaute Indizes, die die Volltextfilter- und Wortbrecher-Komponenten verwenden, die in SQL Server 2025 (17.x) enthalten sind, für zukünftige Populationen und Abfragen.

Die Konfiguration FULLTEXT_INDEX_VERSION steuert außerdem, welche Volltextkomponenten von folgenden systemgespeicherten Prozeduren, Ansichten und Funktionen gemeldet und verwendet werden:

PREVIEW_FEATURES = { ON | FALSCH }

Gilt für: SQL Server 2025 (17.x)

Ermöglicht die Verwendung von Vorschaufeatures. Weitere Informationen finden Sie in der Vorschau von Features in SQL Server.

Der Standardwert ist OFF.

Ein Beispiel für die Verwendung dieser Option finden Sie unter Verwenden von Vorschaufeatures in SQL Server.

Vorsicht

Vorschaufeatures werden für Produktionsumgebungen nicht empfohlen.

Permissions

ALTER ANY DATABASE SCOPED CONFIGURATION ist auf der Datenbank erforderlich. Diese Berechtigung kann von einem Benutzer mit CONTROL-Berechtigung für eine Datenbank erteilt werden.

Remarks

Während Sie sekundäre Datenbanken so konfigurieren können, dass sie verschiedene bereichsbezogene Konfigurationseinstellungen von ihrer primären Datenbank aufweisen, wird für alle sekundären Datenbanken die gleiche Konfiguration verwendet. Für einzelne Secondaries können keine unterschiedlichen Einstellungen konfiguriert werden.

Durch die Ausführung dieser Anweisung wird der Prozedurcache in der aktuellen Datenbank geleert. Dies bedeutet, dass alle Abfragen erneut kompiliert werden müssen.

Bei dreiteiligen Namensabfragen werden die Einstellungen für die aktuelle Datenbankverbindung für die Abfrage berücksichtigt, außer für SQL-Module (z. B. Prozeduren, Funktionen und Trigger), die in einem anderen Datenbankkontext kompiliert werden und daher die Optionen der Datenbank verwenden, in der sie sich befinden. Entsprechend wird beim asynchronen Aktualisieren von ASYNC_STATS_UPDATE_WAIT_AT_LOW_PRIORITY Statistiken die Einstellung für die Datenbank, in der sich Statistiken befinden, berücksichtigt.

Das Ereignis ALTER_DATABASE_SCOPED_CONFIGURATION wird als DLL-Ereignis hinzugefügt, mit dem ein DDL-Trigger ausgelöst werden kann, und ist ein untergeordnetes Ereignis der Triggergruppe ALTER_DATABASE_EVENTS.

Wenn eine bestimmte Datenbank wiederhergestellt oder angefügt wird, werden konfigurationseinstellungen mit Datenbankbereich übertragen und bleiben mit der Datenbank erhalten.

Ab SQL Server 2019 (15.x), in Azure SQL-Datenbank und in azure SQL Managed Instance wurden einige Optionsnamen geändert:

  • DISABLE_INTERLEAVED_EXECUTION_TVF wurde in INTERLEAVED_EXECUTION_TVF geändert
  • DISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACK wurde in BATCH_MODE_MEMORY_GRANT_FEEDBACK geändert
  • DISABLE_BATCH_MODE_ADAPTIVE_JOINS wurde in BATCH_MODE_ADAPTIVE_JOINS geändert

Überprüfen des Status einer Datenbankbereichskonfigurationsoption

Um zu überprüfen, ob eine Konfiguration in einer Datenbank aktiviert (1) oder deaktiviert (0) ist, können Sie sys.database_scoped_configurationsabfragen. Um z. B. den Wert für LEGACY_CARDINALITY_ESTIMATION zu überprüfen, verwenden Sie eine Abfrage wie folgt:

USE <user_database>;
SELECT
    name,
    value,
    value_for_secondary
FROM sys.database_scoped_configurations
WHERE name = 'LEGACY_CARDINALITY_ESTIMATION';

Limitations

MAXDOP

Die differenzierten Einstellungen können die globalen Einstellungen überschreiben. Zudem kann die Ressourcenkontrolle alle anderen MAXDOP-Einstellungen begrenzen. Im Folgenden folgt die Logik für das MAXDOP Setting:

  • Der Abfragehinweis überschreibt die Einstellung sp_configure und die datenbankweit gültige Konfiguration. Wenn die Ressourcengruppe MAXDOP für die Arbeitsauslastungsgruppe festgelegt ist:

    • Wenn der Abfragehinweis auf null (0) gesetzt ist, wird er von der Ressourcen-Governor-Einstellung überschrieben.

    • Wenn der Abfragehinweis nicht null (0) ist, wird er durch die Ressourcen-Governor-Einstellung begrenzt.

  • Die Datenbank-Scoped-Konfiguration (sofern sie nicht null ist) überschreibt die Einstellung sp_configure , es sei denn, es gibt einen Query-Hinweis, und ist durch die Resource Governor-Einstellung begrenzt.

  • Die Ressourcen-Governor-Einstellung überschreibt die Einstellung sp_configure .

QUERY_OPTIMIZER_HOTFIXES

Wenn der Hinweis QUERYTRACEON zur Aktivierung des Standardabfrageoptimierers von SQL Server 7.0 bis SQL Server 2012 (11.x) oder der Hotfixes für den Abfrageoptimierer verwendet wird, bestünde zwischen dem Abfragehinweis und der datenbankweit gültigen Konfigurationseinstellung eine OR-Bedingung. Das heißt, wenn eines davon aktiviert ist, werden die datenbankweiten Konfigurationen angewendet.

Geo-replizierte Katastrophenwiederherstellung (DR)

Lesbare sekundäre Datenbanken (Always On Availability Groups, Azure SQL Database und Azure SQL Managed Instance geo-replikierte Datenbanken) verwenden den sekundären Wert, indem sie den Zustand der Datenbank überprüfen. Obwohl eine Neukompilierung beim Failover nicht erfolgt und technisch gesehen die neue primäre Anfragen hat, die die sekundären Einstellungen verwenden, variieren die Einstellungen zwischen primär und sekundär nur, wenn die Arbeitslast unterschiedlich ist. Daher verwenden die zwischengespeicherten Abfragen die optimalen Einstellungen, während neue Abfragen die neuen Einstellungen wählen, die für sie geeignet sind.

DacFx

Die Funktion ALTER DATABASE SCOPED CONFIGURATION ist in SQL Server 2016 (13.x) und späteren Versionen, Azure SQL Database und Azure SQL Managed Instance verfügbar. Da es das Datenbankschema beeinflusst, können Exporte des Schemas (mit oder ohne Daten) nicht in SQL Server 2014 (12.x) und frühere Versionen importiert werden. Zum Beispiel kann ein Export in einen DACPAC oder BACPAC aus einer SQL-Datenbank oder SQL Server 2016 (13.x)-Datenbank, die diese Funktion verwendet, nicht in einen niedrigeren Server importiert werden.

ELEVATE_ONLINE

Diese Option gilt nur für DDL-Anweisungen, die WITH (ONLINE = <syntax>) unterstützen. XML-Indizes sind nicht betroffen.

ELEVATE_RESUMABLE

Diese Option gilt nur für DDL-Anweisungen, die WITH (RESUMABLE = <syntax>) unterstützen. XML-Indizes sind nicht betroffen.

Metadata

Die sys.database_scoped_configurations Systemansicht liefert Informationen über scoped-Konfigurationen innerhalb einer Datenbank. Datenbankbezogene Konfigurationsoptionen erscheinen nur als sys.database_scoped_configurations Überschreibungen für serverweite Standardeinstellungen. Die Systemansicht sys.configurations zeigt nur serverweite Einstellungen an.

Examples

Diese Beispiele veranschaulichen die Verwendung von ALTER DATABASE SCOPED CONFIGURATION.

A. Berechtigung erteilen

In diesem Beispiel ist die Berechtigung zum Ausführen von ALTER DATABASE SCOPED CONFIGURATION für Benutzer-Joeerforderlich.

GRANT ALTER ANY DATABASE SCOPED CONFIGURATION TO [Joe];

B. MAXDOP festlegen

In diesem Beispiel wird in einem Georeplikationsszenario bei einer primären Datenbank MAXDOP = 1 und bei einer sekundären Datenbank MAXDOP = 4 festgelegt.

ALTER DATABASE SCOPED CONFIGURATION
SET MAXDOP = 1;

ALTER DATABASE SCOPED CONFIGURATION
FOR SECONDARY
SET MAXDOP = 4;

Dieses Beispiel setzt MAXDOP für eine sekundäre Datenbank so ein, dass es für ihre primäre Datenbank in einem Geo-Replikationsszenario festgelegt ist.

ALTER DATABASE SCOPED CONFIGURATION
FOR SECONDARY
SET MAXDOP = PRIMARY;

C. Festlegen von LEGACY_CARDINALITY_ESTIMATION

In diesem Beispiel wird LEGACY_CARDINALITY_ESTIMATION auf ON für eine sekundäre Datenbank in einem Georeplikationsszenario festgelegt.

ALTER DATABASE SCOPED CONFIGURATION
FOR SECONDARY
SET LEGACY_CARDINALITY_ESTIMATION = ON;

Dieses Beispiel setzt LEGACY_CARDINALITY_ESTIMATION eine sekundäre Datenbank so, wie sie sich in einem Geo-Replikationsszenario auf der primären Datenbank befindet.

ALTER DATABASE SCOPED CONFIGURATION
FOR SECONDARY
SET LEGACY_CARDINALITY_ESTIMATION = PRIMARY;

D. Festlegen von PARAMETER_SNIFFING

In diesem Beispiel wird PARAMETER_SNIFFING auf OFF für eine primäre Datenbank in einem Georeplikationsszenario festgelegt.

ALTER DATABASE SCOPED CONFIGURATION
SET PARAMETER_SNIFFING = OFF;

In diesem Beispiel wird PARAMETER_SNIFFING auf OFF für eine sekundäre Datenbank in einem Georeplikationsszenario festgelegt.

ALTER DATABASE SCOPED CONFIGURATION
FOR SECONDARY
SET PARAMETER_SNIFFING = OFF;

Dieses Beispiel setzt PARAMETER_SNIFFING eine sekundäre Datenbank so, wie sie sich in einem Geo-Replikationsszenario auf der primären Datenbank befindet.

ALTER DATABASE SCOPED CONFIGURATION
FOR SECONDARY
SET PARAMETER_SNIFFING = PRIMARY;

E. Festlegen von QUERY_OPTIMIZER_HOTFIXES

Legen Sie QUERY_OPTIMIZER_HOTFIXES auf ON für eine primäre Datenbank in einem Georeplikationsszenario fest.

ALTER DATABASE SCOPED CONFIGURATION
SET QUERY_OPTIMIZER_HOTFIXES = ON;

F. Leeren des Prozedurcache

In diesem Beispiel wird der Prozedurcache geleert (dies ist nur bei einer primären Datenbank möglich).

ALTER DATABASE SCOPED CONFIGURATION
CLEAR PROCEDURE_CACHE;

G. Festlegen von IDENTITY_CACHE

Gilt für: SQL Server 2017 (14.x) und höhere Versionen, Azure SQL-Datenbank und azure SQL Managed Instance

In diesem Beispiel wird der Identitätscache deaktiviert.

ALTER DATABASE SCOPED CONFIGURATION
SET IDENTITY_CACHE = OFF;

H. Festlegen von OPTIMIZE_FOR_AD_HOC_WORKLOADS

gilt für: SQL Server 2019 (15.x) und höhere Versionen, Azure SQL-Datenbank und azure SQL Managed Instance

In diesem Beispiel wird ein Stub des kompilierten Plans aktiviert, der bei der erstmaligen Kompilierung eines Batches im Cache gespeichert werden soll.

ALTER DATABASE SCOPED CONFIGURATION
SET OPTIMIZE_FOR_AD_HOC_WORKLOADS = ON;

I. Festlegen von ELEVATE_ONLINE

gilt für: SQL Server 2019 (15.x) und höhere Versionen, Azure SQL-Datenbank und azure SQL Managed Instance

In diesem Beispiel wird ELEVATE_ONLINE auf FAIL_UNSUPPORTEDfestgelegt.

ALTER DATABASE SCOPED CONFIGURATION
SET ELEVATE_ONLINE = FAIL_UNSUPPORTED;

J. Festlegen von ELEVATE_RESUMABLE

gilt für: SQL Server 2019 (15.x) und höhere Versionen, Azure SQL-Datenbank und azure SQL Managed Instance

In diesem Beispiel wird ELEVATE_RESUMABLE auf WHEN_SUPPORTEDfestgelegt.

ALTER DATABASE SCOPED CONFIGURATION
SET ELEVATE_RESUMABLE = WHEN_SUPPORTED;

K. Löschen eines Abfrageplans aus dem Plancache

gilt für: SQL Server 2019 (15.x) und höhere Versionen, Azure SQL-Datenbank und azure SQL Managed Instance

In diesem Beispiel wird ein bestimmter Plan aus dem Prozedurcache gelöscht:

ALTER DATABASE SCOPED CONFIGURATION
CLEAR PROCEDURE_CACHE 0x06000500F443610F003B7CD12C02000001000000000000000000000000000000000000000000000000000000;

L. Festlegen der Pausendauer

Gilt für: Azure SQL-Datenbank und Azure SQL Managed Instance

In diesem Beispiel wird die Pausendauer des fortsetzbaren Index auf 60 Minuten festgelegt.

ALTER DATABASE SCOPED CONFIGURATION
SET PAUSED_RESUMABLE_INDEX_ABORT_DURATION_MINUTES = 60;

M. Aktivieren und Deaktivieren des Hochladens von Ledger-Digests

Gilt für: SQL Server 2022 (16.x) und höhere Versionen

In diesem Beispiel wird das Hochladen von Ledger-Digests in ein Azure-Speicherkonto aktiviert.

ALTER DATABASE SCOPED CONFIGURATION
SET LEDGER_DIGEST_STORAGE_ENDPOINT = 'https://mystorage.blob.core.windows.net';

In diesem Beispiel wird das Hochladen von Ledger-Digests deaktiviert.

ALTER DATABASE SCOPED CONFIGURATION
SET LEDGER_DIGEST_STORAGE_ENDPOINT = OFF;

N. Previewfunktionen aktivieren

Aktivieren Sie die Möglichkeit, Features in der Vorschau zu verwenden.

ALTER DATABASE SCOPED CONFIGURATION
SET PREVIEW_FEATURES = ON;

SELECT *
FROM sys.database_scoped_configurations
WHERE [name] = 'PREVIEW_FEATURES';

O. Erlauben Sie dem Vektorindex, veraltet zu werden

In Azure SQL und Fabric SQL, im aktuellen Public-Preview-Zustand, machen Vektorindizes Tabellen schreibgeschützt. Um die Tabelle beschreibbar zu machen, aktivieren Sie die folgende Datenbank-Scoped-Konfiguration:

ALTER DATABASE SCOPED CONFIGURATION
SET ALLOW_STALE_VECTOR_INDEX = ON;

SELECT *
FROM sys.database_scoped_configurations
WHERE [name] = 'ALLOW_STALE_VECTOR_INDEX';

Der Vektorindex wird nicht aktualisiert, wenn neue Daten eingefügt oder in die Tabelle aktualisiert werden. Um den Vektorindex zu aktualisieren, müssen Sie ihn entfernen und neu erstellen.

Diese Konfigurationsoption ist derzeit nicht in SQL Server 2025 (17.x) verfügbar.

Weitere Ressourcen

MAXDOP-Ressourcen

LEGACY_CARDINALITY_ESTIMATION Ressourcen

PARAMETER_SNIFFING Ressourcen

QUERY_OPTIMIZER_HOTFIXES Ressourcen

ELEVATE_ONLINE Ressourcen

Richtlinien für Onlineindexvorgänge

ELEVATE_RESUMABLE Ressourcen

Richtlinien für Onlineindexvorgänge