J'ai une requête qui s'exécute très lentement, j'ai donc commencé à examiner le plan d'exécution. TRY_CAST
est un moyen sûr de savoir si les données peuvent être converties en un type. Et il y a un avertissement dans le plan concernant TRY_CAST
.
Type conversion in expression try_cast may affect "CardinalityEstimate" in query plan choice
Veuillez noter que je ne suis pas un DBA mais un codeur. Traitez-moi comme un novice en ce qui concerne les bases de données.
Quelle devrait être la meilleure approche pour améliorer la vitesse de la requête (sur la base de l'avertissement dans le titre de cette question)? Y a-t-il autre chose que TRY_CAST
qui pourrait aider à accélérer la requête, par exemple, CAST
à lui seul est sujet à des exceptions et le seul moyen de cast sécurisé que je connaisse est TRY_CAST
?
Fondamentalement, cela pourrait signifier que la conversion de type ne peut pas utiliser efficacement un index. La cardinalité est une propriété importante des index que vous pourriez utiliser. Pour les performances, l'idéal est de faire correspondre les types de données au lieu d'essayer de les convertir à la volée.
Vous trouverez le post de Thomas LaRock sur cet utile: http://thomaslarock.com/2012/08/why-datatypes-matter-3-ways-they-can-hurt-performance/