ALTER DATABASE SCOPED CONFIGURATION (Transact-SQL)
Gilt für: SQL Server 2016 (13.x) und höhere Versionen
Azure SQL-Datenbank
Azure SQL verwaltete Instanz
Azure Synapse Analytics
SQL-Datenbank in Microsoft Fabric
Dieser Befehl aktiviert mehrere Einstellungen für die Datenbankkonfiguration auf der Ebene einzelner Datenbanken.
Wichtig
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. Stellen Sie sicher, dass Sie die Syntax verwenden, die in der von Ihnen verwendeten Dienstversion verfügbar ist.
Die folgenden Einstellungen werden in Azure SQL-Datenbank, SQL-Datenbank in Microsoft Fabric, Azure SQL verwaltete Instanz und in SQL Server unterstützt, wie durch die Zeile "Gilt 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 an, wie viele Minuten ein angehaltener reaktivierbarer Indexvorgang angehalten wird, bevor er vom Datenbank-Engine automatisch 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
Diese Einstellung ist nur in Azure Synapse Analytics verfügbar.
- Festlegen des Kompatibilitätsgrads von Benutzerdatenbanken
Transact-SQL-Syntaxkonventionen
Syntax
-- Syntax for SQL Server, Azure SQL Database and 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 }
}
Wichtig
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 inINTERLEAVED_EXECUTION_TVF
geändert -
DISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACK
wurde inBATCH_MODE_MEMORY_GRANT_FEEDBACK
geändert -
DISABLE_BATCH_MODE_ADAPTIVE_JOINS
wurde inBATCH_MODE_ADAPTIVE_JOINS
geändert
-- Syntax for Azure Synapse Analytics
ALTER DATABASE SCOPED CONFIGURATION
{
SET <set_options>
}
[;]
< set_options > ::=
{
DW_COMPATIBILITY_LEVEL = { AUTO | 10 | 20 | 30 | 40 | 50 | 9000 }
}
Argumente
FOR SECONDARY
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 Abfrageplanhandles ist ab SQL Server 2019 (15.x), in Azure SQL-Datenbank und Verwaltete Azure SQL-Instanz verfügbar.
MAXDOP = {<value> | PRIMARY }
<value>
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 Datenbankbereich überschreibt (es sei denn, er ist auf 0 festgelegt) den maximalen Grad der Parallelität, der auf Serverebene festgelegt ist.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. All diese Einstellungen werden durch die MAXDOP-Einstellung für die Arbeitsauslastungsgruppe 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.
Hinweis
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 Abfrage mehrere Tasks erzeugen kann, die einem Planer zugeordnet sind. Weitere Informationen finden Sie im Handbuch zur Thread- und Taskarchitektur.
Informationen zum Festlegen dieser Option auf Instanzebene finden Sie unter Konfigurieren der Serverkonfigurationsoption „Max. Grad an Parallelität“.
Hinweis
In Azure SQL-Datenbank ist die datenbankweite Konfiguration von MAXDOP für neue Singletons und elastische Datenbanken in Pools standardmäßig auf 8 begrenzt. Der maximale Grad an Parallelität kann für jede Datenbank, wie im aktuellen Artikel beschrieben, konfiguriert werden. Empfehlungen zur optimalen Konfiguration des maximalen Grads an Parallelität finden Sie im Abschnitt Weitere Ressourcen.
Tipp
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 | OFF | 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. Das Festlegen LEGACY_CARDINALITY_ESTIMATION
auf ON
entspricht dem Aktivieren Ablaufverfolgungskennzeichnung 9481.
Tipp
Fügen Sie den AbfragehinweisQUERYTRACEON hinzu, um dies auf Abfrageebene zu erreichen. Fügen Sie ab SQL Server 2016 (13.x) SP1 den USE HINT-Abfragehinweis hinzu, anstatt das Ablaufverfolgungskennzeichnung 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 | OFF | PRIMARY }
Aktiviert oder deaktiviert die Parameterermittlung. Der Standardwert ist ON
. Das Festlegen PARAMETER_SNIFFING
auf OFF
entspricht dem Aktivieren Ablaufverfolgungskennzeichnung 4136.
Tipp
Dies auf Abfrageebene finden Sie im OPTIMIZE FOR UNKNOWN
Abfragehinweis.
In SQL Server 2016 (13.x) SP1 und höher ist dies auf Abfrageebene auch der USE HINT
Abfragehinweis 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 | OFF | 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
entspricht dem Aktivieren Ablaufverfolgungskennzeichnung 4199.
Gilt für: SQL Server (ab SQL Server 2016 (13.x)), Azure SQL-Datenbank und Verwaltete Azure SQL-Instanz
Tipp
Fügen Sie den AbfragehinweisQUERYTRACEON hinzu, um dies auf Abfrageebene zu erreichen. Ab SQL Server 2016 (13.x) SP1 müssen Sie den Abfragehinweis USE HINT hinzufügen, statt das Ablaufverfolgungsflag zu verwenden, um dies auf Abfrageebene zu erreichen.
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 | OFF }
Gilt für: SQL Server (ab SQL Server 2017 (14.x)), Azure SQL-Datenbank und Verwaltete Azure SQL-Instanz
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 ist mit dem vorhandenen Ablaufverfolgungsflag 272 vergleichbar. Der einzige Unterschied besteht darin, dass sie auf Datenbankebene und nicht nur auf Serverebene festgelegt werden kann.
Hinweis
Diese Option kann nur für PRIMARY festgelegt werden. Weitere Informationen finden Sie unter Identitätsspalten.
INTERLEAVED_EXECUTION_TVF = { ON | OFF }
Gilt für: SQL Server (ab SQL Server 2019 (15.x)), Azure SQL-Datenbank und Verwaltete Azure SQL-Instanz
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.
Hinweis
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 | OFF }
Gilt für: SQL Server (ab SQL Server 2019 (15.x)), Azure SQL-Datenbank und Verwaltete Azure SQL-Instanz
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.
Hinweis
Für Datenbank-Kompatibilitätsgrade von 130 oder weniger hat diese datenbankbezogene Konfiguration keine Auswirkungen.
BATCH_MODE_ADAPTIVE_JOINS = { ON | OFF }
Gilt für: SQL Server (ab SQL Server 2019 (15.x)), Azure SQL-Datenbank und Verwaltete Azure SQL-Instanz
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.
Hinweis
Für Datenbank-Kompatibilitätsgrade von 130 oder weniger hat diese datenbankbezogene Konfiguration keine Auswirkungen.
TSQL_SCALAR_UDF_INLINING = { ON | OFF }
Gilt für: SQL Server (ab SQL Server 2019 (15.x)) und Azure SQL-Datenbank (Feature befindet sich 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.
Hinweis
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 (ab SQL Server 2019 (15.x)), Azure SQL-Datenbank und Verwaltete Azure SQL-Instanz
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.
Hinweis
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.
Hinweis
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 (ab SQL Server 2019 (15.x)), Azure SQL-Datenbank und Verwaltete Azure SQL-Instanz
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.
Hinweis
Sie können die Standardeinstellung überschreiben, indem Sie eine Anweisung senden, in der die RESUMABLE-Option angegeben ist.
OPTIMIZE_FOR_AD_HOC_WORKLOADS = { ON | OFF }
Gilt für: SQL Server (ab SQL Server 2019 (15.x)), Azure SQL-Datenbank und Verwaltete Azure SQL-Instanz
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 | OFF }
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 | OFF }
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 ON
ist 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 | OFF }
Gilt für: SQL Server (ab SQL Server 2019 (15.x)), Azure SQL-Datenbank und Verwaltete Azure SQL-Instanz
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.
Hinweis
Für Datenbank-Kompatibilitätsgrade von 140 oder weniger hat diese datenbankbezogene Konfiguration keine Auswirkungen.
MEMORY_GRANT_FEEDBACK_PERCENTILE_GRANT = { ON | OFF }
Gilt für: SQL Server (ab SQL Server 2022 (16.x)) 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.
Hinweis
Für Datenbank-Kompatibilitätsgrade von 140 oder weniger hat diese datenbankbezogene Konfiguration keine Auswirkungen.
MEMORY_GRANT_FEEDBACK_PERSISTENCE = { ON | OFF }
Gilt für: SQL Server (ab SQL Server 2022 (16.x)), 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.
Hinweis
Für Datenbank-Kompatibilitätsgrade von 140 oder weniger hat diese datenbankbezogene Konfiguration keine Auswirkungen.
BATCH_MODE_ON_ROWSTORE = { ON | OFF }
Gilt für: SQL Server (ab SQL Server 2019 (15.x)), Azure SQL-Datenbank und Verwaltete Azure SQL-Instanz
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.
Hinweis
Für Datenbank-Kompatibilitätsgrade von 140 oder weniger hat diese datenbankbezogene Konfiguration keine Auswirkungen.
DEFERRED_COMPILATION_TV = { ON | OFF }
Gilt für: SQL Server (ab SQL Server 2019 (15.x)), Azure SQL-Datenbank und Verwaltete Azure SQL-Instanz
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.
Hinweis
Für Datenbank-Kompatibilitätsgrade von 140 oder weniger hat diese datenbankbezogene Konfiguration keine Auswirkungen.
ACCELERATED_PLAN_FORCING = { ON | OFF }
Gilt für: SQL Server (ab SQL Server 2019 (15.x)), Azure SQL-Datenbank und Verwaltete Azure SQL-Instanz
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
.
Hinweis
Es wird nicht empfohlen, beschleunigte Planzwingung zu deaktivieren.
GLOBAL_TEMPORARY_TABLE_AUTO_DROP = { ON | OFF }
Gilt für: SQL Server (ab SQL Server 2019 (15.x)), Azure SQL-Datenbank und Verwaltete Azure SQL-Instanz
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 OFF
festgelegt 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
tempdb
festgelegt werden. Die Einstellung in einzelnen Benutzerdatenbanken hat keine Auswirkung.
LIGHTWEIGHT_QUERY_PROFILING = { ON | OFF }
Gilt für: SQL Server (ab SQL Server 2019 (15.x)), Azure SQL-Datenbank und Verwaltete Azure SQL-Instanz
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 | OFF }
Gilt für: SQL Server (ab SQL Server 2019 (15.x)), Azure SQL-Datenbank und Verwaltete Azure SQL-Instanz
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 erfordert, dass Ablaufverfolgungskennzeichnung 460 aktiviert werden muss, und diese Datenbankbereichskonfiguration hat keine Auswirkungen.
LAST_QUERY_PLAN_STATS = { ON | OFF }
Gilt für: SQL Server (ab SQL Server 2019 (15.x)), Azure SQL-Datenbank und Verwaltete Azure SQL-Instanz
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 (ab SQL Server 2022 (16.x)), 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 (ab SQL Server 2019 (15.x)), Azure SQL-Datenbank und Verwaltete Azure SQL-Instanz
Ermöglicht es Ihnen, zu steuern, ob ein Prädikat für die Sicherheit auf Zeilenebene (Row-Level Security, RLS) die Kardinalität des Ausführungsplans für die gesamte Benutzerabfrage beeinflusst. Der Standardwert ist OFF
. Wenn ISOLATE_SECURITY_POLICY_CARDINALITY
EIN ist, wirkt sich ein RLS-Prädikat nicht auf die Kardinalität eines Ausführungsplans aus. 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. Für die meisten Arbeitsauslastungen wird empfohlen, den Standardwert zu verwenden.
DW_COMPATIBILITY_LEVEL = { AUTO | 10 | 20 | 30 | 40 | 50 | 9000 }
Gilt für: nur Azure Synapse Analytics
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ätsgrad | Kommentare |
---|---|
AUTO |
Standard. 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 |
Die mehrspaltige Verteilung wird auf dieser Ebene unterstützt. Weitere Informationen finden Sie unter CREATE TABLE, CREATE TABLE AS SELECT und CREATE MATERIALIZED VIEW. |
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 | OFF }
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 | OFF }
Gilt für: SQL Server (ab SQL Server 2022 (16.x)), Azure SQL-Datenbank und Verwaltete Azure SQL-Instanz
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 | OFF }
Gilt für: SQL Server (ab SQL Server 2022 (16.x)) und Azure SQL-Datenbank
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 | OFF }
Gilt für: SQL Server (ab SQL Server 2022 (16.x)) und Azure SQL-Datenbank
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 Feedback zum Grad der Parallelität (DOP). Der Standardwert ist OFF
.
CE_FEEDBACK = { ON | OFF }
Gilt für: SQL Server (ab SQL Server 2022 (16.x)), 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 | OFF }
Gilt für: SQL Server (ab SQL Server 2022 (16.x)), 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 (ab SQL Server 2022 (16.x))
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 OFF
fest. Der Standardwert ist OFF
.
FORCE_SHOWPLAN_RUNTIME_PARAMETER_COLLECTION = { ON | OFF }
Gilt für: SQL Server (ab SQL Server 2022 (16.x)), Azure SQL-Datenbank und Verwaltete Azure SQL-Instanz
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
Wichtig
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 | OFF }
Gilt für: Azure SQL-Datenbank
Aktiviert oder deaktiviert das Serialisierungsverhalten der Kompilierung von sp_executesql
, wenn ein Batch kompiliert wird. Der Standardwert ist OFF
. Das Zulassen von Batches, die sp_executesql
verwenden, um den Kompilierungsprozess zu serialisieren, reduziert die Auswirkungen von Kompilierungsstürmen. Ein Kompilierungssturm bezieht sich auf eine Situation, in der eine große Anzahl von Abfragen gleichzeitig kompiliert wird, was zu Leistungsproblemen und Ressourcenkonflikten führt.
Wenn OPTIMIZED_SP_EXECUTESQL
ON
ist, 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.
Berechtigungen
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.
Bemerkungen
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 inINTERLEAVED_EXECUTION_TVF
geändert -
DISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACK
wurde inBATCH_MODE_MEMORY_GRANT_FEEDBACK
geändert -
DISABLE_BATCH_MODE_ADAPTIVE_JOINS
wurde inBATCH_MODE_ADAPTIVE_JOINS
geändert
In der SQL-Datenbank in Microsoft Fabric erfolgt die Authentifizierung über microsoft Entra ID passthrough, using USER IDENTITY
.
Ü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';
Begrenzungen
MAXDOP
Die differenzierten Einstellungen können die globalen Einstellungen überschreiben. Zudem kann die Ressourcenkontrolle alle anderen MAXDOP-Einstellungen begrenzen. Die Logik für MAXDOP
Einstellung lautet wie folgt:
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 „0 (null)“ festgelegt ist, wird er von der Einstellung der Ressourcenkontrolle überschrieben.
Wenn der Abfragehinweis nicht null (0) ist, wird er durch die Einstellung "Ressourcenkontrolle" begrenzt.
Die datenbankweit gültige Einstellung überschreibt die Einstellung
sp_configure
(wenn sie nicht auf „0 (null)“ festgelegt ist), sofern kein Abfragehinweis vorhanden ist und sie nicht von der Einstellung der Ressourcenkontrolle begrenzt wird.Die Einstellung
sp_configure
wird von der Einstellung der Ressourcenkontrolle überschrieben.
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.
Georeplikation von Datenbanken
Lesbare sekundäre Datenbanken (Always On-Verfügbarkeitsgruppen, Azure SQL-Datenbank und georeplizierte Verwaltete Azure SQL-Instanz-Datenbanken) verwenden den sekundären Wert durch Überprüfung des Datenbankstatus. Obwohl es bei einer erneuten Kompilierung nicht zu einem Failover kommt und die neue primäre Datenbank eigentlich Abfragen aufweist, die Einstellungen für die sekundären Datenbanken verwenden, ist die Idee, dass die Einstellungen zwischen der primären und der sekundären Datenbank nur bei unterschiedlicher Arbeitsauslastung variieren. Daher verwenden die zwischengespeicherten Abfragen die optimalen Einstellungen, während neue Abfragen die neuen, für sie geeigneten Einstellungen auswählen.
DacFX
Da ALTER DATABASE SCOPED CONFIGURATION
ein neues Feature in Azure SQL-Datenbank ist, können azure SQL Managed Instance und SQL Server (beginnend mit SQL Server 2016 (13.x)) das Datenbankschema beeinflussen, Exporte des Schemas (mit oder ohne Daten) nicht in eine ältere Version von SQL Server importiert werden, z. B. SQL Server 2012 (11.x) oder SQL Server 2014 (12.x). Ein Export in ein DACPAC oder ein BACPAC aus einer Datenbank von SQL-Datenbank oder SQL Server 2016 (13.x), in der dieses neue Feature verwendet wird, könnte nicht in einen Server der Vorgängerversion 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.
Metadaten
Die Systemsicht sys.database_scoped_configurations (Transact-SQL) enthält Informationen zu bereichsbezogenen Konfigurationen innerhalb einer Datenbank. Datenbankbezogene Konfigurationsoptionen werden nur in sys.database_scoped_configurations
angezeigt, da sie serverweite Standardeinstellungen überschreiben. In der Systemsicht sys.configurations (Transact-SQL) werden nur serverweite Einstellungen angezeigt.
Beispiele
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-Joe
erforderlich.
GRANT ALTER ANY DATABASE SCOPED CONFIGURATION TO [Joe];
B. Festlegen von MAXDOP
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;
In diesem Beispiel wird in einem Georeplikationsszenario der Wert für MAXDOP bei einer sekundären Datenbank auf den gleichen Wert wie für die zugehörige primäre Datenbank festgelegt.
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;
In diesem Beispiel wird LEGACY_CARDINALITY_ESTIMATION
für eine sekundäre Datenbank wie für die primäre Datenbank in einem Georeplikationsszenario festgelegt.
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;
In diesem Beispiel wird PARAMETER_SNIFFING
für sekundäre Datenbank so festgelegt, wie sie sich in einer primären Datenbank in einem Georeplikationsszenario 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 (ab SQL Server 2017 (14.x)), Azure SQL-Datenbank und Verwaltete Azure SQL-Instanz
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 (ab SQL Server 2019 (15.x)), Azure SQL-Datenbank und Verwaltete Azure SQL-Instanz
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 (ab SQL Server 2019 (15.x)), Azure SQL-Datenbank und Verwaltete Azure SQL-Instanz
In diesem Beispiel wird ELEVATE_ONLINE
auf FAIL_UNSUPPORTED
festgelegt.
ALTER DATABASE SCOPED CONFIGURATION
SET ELEVATE_ONLINE = FAIL_UNSUPPORTED;
J. Festlegen von ELEVATE_RESUMABLE
Gilt für: SQL Server (ab SQL Server 2019 (15.x)), Azure SQL-Datenbank und Verwaltete Azure SQL-Instanz
In diesem Beispiel wird ELEVATE_RESUMABLE
auf WHEN_SUPPORTED
festgelegt.
ALTER DATABASE SCOPED CONFIGURATION
SET ELEVATE_RESUMABLE = WHEN_SUPPORTED;
K. Löschen eines Abfrageplans aus dem Plancache
Gilt für: SQL Server (ab SQL Server 2019 (15.x)), Azure SQL-Datenbank und Verwaltete Azure SQL-Instanz
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 (ab SQL Server 2022 (16.x))
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;
Weitere Ressourcen
Ressourcen von MAXDOP
- Grad der Parallelität
- Recommendations and guidelines for the "max degree of parallelism" configuration option in SQL Server (Empfehlungen und Guidelines für die Konfigurationsoption „Max. Grad an Parallelität“ in SQL Server)
Ressourcen von LEGACY_CARDINALITY_ESTIMATION
- Kardinalitätsschätzung (SQL Server)
- Optimizing Your Query Plans with the SQL Server 2014 Cardinality Estimator
Ressourcen von PARAMETER_SNIFFING
Ressourcen von QUERY_OPTIMIZER_HOTFIXES
- Ablaufverfolgungsflags
- SQL Server query optimizer hotfix trace flag 4199 servicing model (Wartungsmodell für SQL Server-Hotfix für Abfrageoptimierer – Ablaufverfolgungsflag 4199)
ELEVATE_ONLINE-Ressourcen
Richtlinien für Onlineindexvorgänge
ELEVATE_RESUMABLE-Ressourcen
Richtlinien für Onlineindexvorgänge
Zugehöriger Inhalt
- sys.database_scoped_configurations
- sys.configurations
- Datenbanken und Dateikatalogsichten (Transact-SQL)
- Serverkonfigurationsoptionen (SQL Server)
- ALTER INDEX (Transact-SQL)
- CREATE INDEX (Transact-SQL)
- Recommendations and guidelines for the "max degree of parallelism" configuration option in SQL Server (Empfehlungen und Guidelines für die Konfigurationsoption „Max. Grad an Parallelität“ in SQL Server)
- Funktionsweise von Onlineindexvorgängen
- Ausführen von Onlineindexvorgängen
- Intelligente Abfrageverarbeitung in SQL-Datenbanken
- Feedback zur Speicherzuweisung
- Feedback zur Kardinalitätsschätzung (CE)
- Feedback zum Grad der Parallelität