Verbesserte Diagnosefunktionen für Abfrageausführungspläne, die eine verbleibende Prädikatsweitergabe in SQL Server umfassen

Problembeschreibung

Einige Abfrageausführungspläne in Microsoft SQL Server enthalten das Muster, einen Filter zusätzlich zu einer Scan-/Bereichsoperation für Tabellen oder Indizes auszuwerten. Einige Teile des Filterprädikats stimmen evtl. mit einem Indexschlüssel überein und können daher verwendet werden, um eine Indexsuche oder einen Bereichsscan durchzuführen. Die übrigen Teile des Prädikats werden als "verbleibend" bezeichnet und müssen von der Scan- oder Bereichsoperation für jede Zeilenausgabe ausgewertet werden. Dies entspricht einem Filteroperator. Zur Verbesserung der Leistung kann SQL Server jedoch einen derartigen Filter an den Tabellenzugriffsoperator selbst weitergeben.

Obwohl dieser Ansatz die Leistung insgesamt verbessert, verarbeitet der Scan-Below-Filter unter bestimmten Umständen (z. B. bei einer ungenauen Kardinalitätsschätzung, die mit Parameterempfindlichkeit verknüpft ist) evtl. eine größere Anzahl von Zeilen als erwartet. Dies kann während der Behandlung von Abfrage-Leistungsproblemen bei Verwendung eines tatsächlichen Ausführungsplans ausgeblendet werden, denn die tatsächliche Anzahl der Zeilen, die zurückgegeben werden, entspricht der Anzahl der Zeilen nach dem Anwenden des verbleibenden Prädikats und nicht der tatsächlichen Anzahl der Zeilen, die aus einer Tabelle oder einem Index gescannt werden.

Problemlösung

Um die Diagnosefunktionen für das Szenario zu verbessern, das im Abschnitt "Symptome" beschrieben wird, ist in SQL Server 2012 Service Pack 3 (SP3) und SQL Server 2014 SP2 ein neues Showplan-XML-Attribut vorrhanden: Actual Rows Read. Dieses Attribut enthält Informationen darüber, wie viele Zeilen vom Operator vor dem Anwenden des verbleibenden Prädikats gelesen wurden.

Diese Funktionalität war Faust folgenden Service Packs für SQL Server eingeführt.

Weitere Informationen zu SQL Server 2012 Service Pack 3 (SP3) anzeigen Sie , die in SQL Server 2012 Service Pack 3 behobenen, Fehler

Informationen zu den Service Packs für SQL Server

Service Packs sind kumulativ. Jedes neue Service Pack enthält alle Fixes aus früheren Service Packs sowie alle neuen Fixes. Unsere Empfehlung ist, das neueste Service Pack und das neueste kumulative Update für dieses Service Pack anzuwenden. Sie müssen kein früheres Servicepack installieren, bevor Sie das neueste Servicepack installieren. Verwenden Sie Tabelle 1 im folgenden Artikel, um weitere Informationen über das aktuelle Service Pack und das neueste kumulative Update zu erhalten.

So ermitteln Sie die Version, Edition und Updateebene von SQL Server und seinen Komponenten
Eigenschaften

Artikelnummer: 3107397 – Letzte Überarbeitung: 20.01.2017 – Revision: 1

Feedback