Applies ToSQL Server 2016 Developer - duplicate (do not use) SQL Server 2016 Enterprise - duplicate (do not use) SQL Server 2016 Enterprise Core - duplicate (do not use) SQL Server 2016 Express - duplicate (do not use) SQL Server 2016 Standard - duplicate (do not use) SQL Server 2016 Web - duplicate (do not use)

Zusammenfassung

Dieses Update führt ein neues Abfragehinweis Argument ein, mitdem Sie den Abfrageoptimierer ohne erhöhte Anmeldeinformationen oder ohne Mitgliedschaft in der sysadmin-Serverrolle steuern können. Die Syntax dieses neuen Abfragehinweises sieht wie folgt aus:

<query_hint > ::={USE HINT(N'key' [ [, ]...n ])}

Mit diesem Update werden auch die folgenden Hinweis Optionen eingeführt, die mit dem use Hint -Argument verwendet werden können.

Option

Entsprechendes Ablaufverfolgungsflag

Beschreibung

Gilt für

ASSUME_JOIN_PREDICATE_DEPENDS_ON_FILTERS

TF 9476

Bewirkt, dass SQL Server einen Abfrageplan mithilfe der einfachen Eindämmungs Annahme anstelle der Standardannahme für Joins unter dem Abfrageoptimierer generiert Cardinality Estimation- Modell von SQL Server 2014 (12. x) oder höher

ASSUME_MIN_SELECTIVITY_FOR_FILTER_ESTIMATES

TF 4137

Bewirkt, dass SQL Server einen Plan mit minimaler Selektivität beim schätzen und Prädikaten für Filter generiert, um Korrelationen zu berücksichtigen. Dieser Hinweis Name ist parallel zu Ablaufverfolgungsflag 4137 bei Verwendung mit dem Cardinality Estimate-Modell von SQL Server 2012 (11. x) und älteren Versionen und hat ähnliche Auswirkungen, wenn das Ablaufverfolgungsflag 9471 mit dem Kardinalitäts-Schätzmodell von SQL Server 2014 (12. x) oder höher verwendet wird.

DISABLE_BATCH_MODE_ADAPTIVE_JOINS

Deaktiviert die adaptiven Joins im Batchmodus.

ab SQL Server 2017

DISABLE_BATCH_MODE_MEMORY_GRANT_FEEDBACK

Deaktiviert den Batchmodus-Feedback zur Speicherzuweisung.

ab SQL Server 2017

DISABLE_DEFERRED_COMPILATION_TV

Deaktiviert die Tabellenvariable Verzögerte Kompilierung.

ab SQL Server 2019

DISABLE_INTERLEAVED_EXECUTION_TVF

Deaktiviert die Interleaved-Ausführung für Tabellenwertfunktionen mit mehreren Anweisungen.

ab SQL Server 2017

DISABLE_OPTIMIZED_NESTED_LOOP

TF 2340

Weist den Abfrageprozessor an, bei der Generierung eines Abfrageplans keine Sortieroperation (Batch Sortierung) für optimierte verschachtelte Schleifen Verknüpfungen zu verwenden.

DISABLE_OPTIMIZER_ROWGOAL

TF 4138

Bewirkt, dass SQL Server einen Plan generiert, der keine Änderungen an Zeilen Zielen für Abfragen verwendet, die diese Schlüsselwörter enthalten:

  • Nach oben

  • Option (fast N)

  • IN

  • Existiert

DISABLE_PARAMETER_SNIFFING

TF 4136

Weist den Abfrageoptimierer an, die durchschnittliche Datenverteilung beim Kompilieren einer Abfrage mit einem oder mehreren Parametern zu verwenden. Diese Anweisung macht den Abfrageplan unabhängig von dem Parameterwert, der zum ersten Mal bei der Kompilierung der Abfrage verwendet wurde. Verwenden Sie diesen Hinweis, um die Konfigurationseinstellung für den Datenbankbereich zu überschreiben PARAMETER_SNIFFING = aus.

DISABLE_ROW_MODE_MEMORY_GRANT_FEEDBACK

Deaktiviert den Zeilenmodus, um das Feedback zum Speicherzugriff zu erhalten.

ab SQL Server 2019

DISABLE_TSQL_SCALAR_UDF_INLINING

Deaktiviert Skalar-UDF-Inlining.

ab SQL Server 2019

DISALLOW_BATCH_MODE

Deaktiviert die Ausführung des Batchmodus.

ab SQL Server 2019

ENABLE_HIST_AMENDMENT_FOR_ASC_KEYS

TF 4139

Ermöglicht automatisch generierte Schnellstatistik (Histogramm-Änderung) für jede führende Indexspalte, für die eine Kardinalitäts Schätzung erforderlich ist. Das Histogramm, das zum Schätzen der Kardinalität verwendet wird, wird bei der Kompilierungszeit der Abfrage angepasst, damit der tatsächliche höchst-oder Mindestwert dieser Spalte berücksichtigt wird.

ENABLE_QUERY_OPTIMIZER_HOTFIXES

TF 4199

Aktiviert die Hotfixes für Abfrageoptimierer (Änderungen, die in kumulierten Updates und Service Packs von SQL Server veröffentlicht wurden). Verwenden Sie diesen Hinweis zum Überschreiben Konfigurations Einstellung für den Datenbankbereich QUERY_OPTIMIZER_HOTFIXES = ein.

FORCE_DEFAULT_CARDINALITY_ESTIMATION

TF 9481

Erzwingt die Verwendung des Abfrageoptimierers Bewertungs Modell für die Kardinalität, das dem aktuellen Datenbankkompatibilitätsgrad entspricht. Verwenden Sie diesen Hinweis zum Überschreiben Konfigurations Einstellung für den Datenbankbereich LEGACY_CARDINALITY_ESTIMATION = ein.

FORCE_LEGACY_CARDINALITY_ESTIMATION

TF 9481

Erzwingt die Verwendung des Abfrageoptimierers Modell für die Kardinalitäts Schätzung von SQL Server 2012 (11. x) und früheren Versionen. Verwenden Sie diesen Hinweis, um die Konfigurationseinstellung für den Datenbankbereich zu überschreiben LEGACY_CARDINALITY_ESTIMATION = ein.

QUERY_OPTIMIZER_COMPATIBILITY_LEVEL_n

Erzwingt das Verhalten des Abfrageoptimierers auf Abfrageebene. Dieses Verhalten tritt auf, als ob die Abfrage mit dem Datenbankkompatibilitätsgrad kompiliert wurde. n, wobei n ein unterstützter Datenbank-Kompatibilitätsgrad ist. Weitere Informationen finden Sie untersys.dm_exec_valid_use_hints für eine Liste der aktuell unterstützten Werte für n.

ab SQL Server 2017 (14. x) CU10

Weitere Informationen finden Sie unter Hints (Transact-SQL)-Query.

Weitere Informationen

Dieses Update ist in Service Pack 1 für SQL Server 2016 enthalten.

 

Jeder neue Build für SQL Server 2016 enthält alle Hotfixes und alle Sicherheitsupdates, die im vorherigen Build enthalten waren. Wir empfehlen, den neuesten Build für SQL Server 2016 zuinstallieren.

Szenarien, in denen das Verhalten von SQL Server-Abfrageoptimierern (qo) angedeutet werden muss, sind relativ häufig, und Sie werden üblicherweise mithilfe mehrerer (dokumentierter und undokumentierter) Ablaufverfolgungsflags behandelt. Wenn Ablaufverfolgungsflags jedoch global gesetzt werden, wirken sich diese möglicherweise negativ auf andere Arbeitsauslastungen aus. Darüber hinaus ist die Aktivierung von Sitzungen pro Sitzung bei vorhandenen Anwendungen nicht praktikabel, und die Aktivierung der einzelnen Abfragen mit der Option QUERYTRACEON erfordert die Mitgliedschaft in der festen Serverrolle sysadmin. (Obwohl Sie dieses Verhalten mithilfe einer Planhinweisliste oder einer gespeicherten Prozedur umgehen können, sind erhöhte Anmeldeinformationen weiterhin erforderlich.) Ablaufverfolgungsflags werden verwendet, um bestimmte Server Merkmale temporär festzulegen oder um ein bestimmtes Verhalten zu deaktivieren, die möglicherweise schwierig zu verwalten und zu verstehen sind. Informationen zu Ablaufverfolgungsflags finden Sie im Thema Ablaufverfolgungsflags (Transact-SQL) auf der Website des Microsoft Developer Network (MSDN).

Informationsquellen

Erfahren Sie mehr über die Terminologie , mit der Microsoft Softwareupdates beschreibt.

Benötigen Sie weitere Hilfe?

Möchten Sie weitere Optionen?

Erkunden Sie die Abonnementvorteile, durchsuchen Sie Trainingskurse, erfahren Sie, wie Sie Ihr Gerät schützen und vieles mehr.

In den Communities können Sie Fragen stellen und beantworten, Feedback geben und von Experten mit umfassendem Wissen hören.