question rapide pour le sortir du DBA là:SQL indexation - colonne calculée vs champ utilisé par colonne calculée
Dire que j'ai 2 colonnes sur ma table, IsDeleted (bit) et DeletedDate (datetime). La table contient environ 10 000 000 lignes. IsDeleted est une colonne calculée qui vérifie si DeletedDate est NULL; et il renvoie 1 s'il ne l'est pas, et 0 s'il l'est.
L'interrogation de cette table se fera principalement sur la colonne IsDeleted.
Quelqu'un pourrait-il me donner quelques suggestions sur où je devrais appliquer mon index? L'application à la zone IsDeleted entraîne une série de problèmes dus à la désactivation de l'IDENTIFIANT QUOTED SET, qui n'est pas nécessairement un facteur de rupture, mais qui entraînerait un travail supplémentaire. Est-ce que je verrais un avantage à l'appliquer à DeletedDate, même si je n'interroge pas directement ce champ? Devrais-je juste mordre la balle et l'ajouter à IsDeleted? La différence de performance entre les deux est-elle négligeable?
Merci encore; et si vous souhaitez des clarifications; laissez-moi un commentaire et je mettrai à jour mon message.
Est-ce vrai? Vérifier si le champ est nul ou non ne semble pas logiquement non-déterministe. –
oh j'ai mal compris cela, je pensais que vous étiez en train de comparer DeletedDate avec la date actuelle, Wonder pour éditer, ou tirez la réponse et re-répondre –