Die Typkonvertierung im Ausdruck try_cast kann die Kardinalitätsschätzung bei der Auswahl des Abfrageplans beeinflussen

7

Ich habe eine Abfrage, die sehr langsam ausgeführt wird, daher habe ich mich mit dem Ausführungsplan befasst. TRY_CASTist eine sichere Methode, um herauszufinden, ob die Daten in einen Typ umgewandelt werden können. Und es gibt eine Warnung im Plan bezüglich TRY_CAST.

 Type conversion in expression try_cast may affect "CardinalityEstimate" in query plan choice

Bitte beachten Sie, dass ich kein DBA, sondern ein Programmierer bin. Behandle mich als Anfänger, wenn es um Datenbank geht.

Was sollte der beste Ansatz sein, um die Geschwindigkeit der Abfrage zu verbessern (basierend auf der Warnung im Titel dieser Frage)? Gibt es etwas anderes TRY_CAST, das dazu beitragen könnte, die Abfrage zu beschleunigen ? Beispielsweise CASTist es für sich genommen anfällig für Ausnahmen und der einzige mir bekannte Weg zur sicheren Besetzung ist TRY_CAST?

Geben Sie hier die Bildbeschreibung ein

Oxon
quelle

Antworten:

17

Grundsätzlich kann dies bedeuten, dass bei der Typkonvertierung ein Index nicht effektiv verwendet werden kann. Kardinalität ist eine wichtige Eigenschaft der Indizes, die Sie möglicherweise verwenden. Für die Leistung ist es ideal, die Datentypen übereinstimmen zu lassen, anstatt zu versuchen, sie im laufenden Betrieb zu konvertieren.

Sie finden den Beitrag von Thomas LaRock auf diesem nützlichen: http://thomaslarock.com/2012/08/why-datatypes-matter-3-ways-they-can-hurt-performance/

RLF
quelle