Aucun des trois éléments que vous devez pour vous d'utiliser correctement votre index. Le facteur le plus important qui détermine si un index sera utilisé ou non est la construction de la requête, et son évaluation par le moteur de l'optimiseur de requête.
Mais, pour aller avec ce que vous avez évoqué, nous allons vérifier l'utilisation des trois:
SET CONCAT_NULL_YIELDS_NULL SUR
Profitons de cette déclaration SET @Name = @FirstName + ' ' + @LastName
Si @FirstName est NULL ou @LastName est NULL, alors votre @Name sera NULL. Si vous ne voulez pas ce comportement - vous voulez NULL être traité comme une chaîne vide, alors vous SET CONCAT_NULL_YIELDS_NULL ON
SET ANSI_PADDING SUR
Ce sera dépréciée à l'avenir. Sur SQL Server, cette option est activée par défaut. En fait, sur les versions plus récentes de SQL Server, vous ne pouvez même pas le désactiver.
Cela affecte le stockage des données dans une colonne varchar - par exemple, si vous l'activez, une valeur de TEST
sera stockée avec un espace vide de fin si vous le désactivez, les espaces de fin sont supprimés. La même chose s'applique aux zéros finaux dans une colonne VarBinary.
SET ANSI_WARNINGS SUR
Ceci est pour le regroupement et un total. Si vous avez une valeur NULL dans n'importe quelle fonction d'agrégat, et que vous voulez savoir qu'il y a une valeur NULL, alors vous devez l'activer. Si vous ne voulez pas savoir qu'une valeur NULL a été éliminée de l'agrégat, vous désactivez cette option.