J'ai une colonne Datetime appelée CreatedOn dans une table. CreatedOn fait également partie d'un index non clusterisé où la commande est décroissante.Lequel Où la condition sur Datetime sera plus rapide?
Auparavant dans la condition where j'avais une condition comme suit
WHERE DateDiff(d,CreatedOn,GetDate()) < 180 AND ... other conditions
J'ai changé cela
WHERE CreatedOn > '2012-04-04 00:00:00.000' AND ... other conditions
où je calculais la date limite dans le code C# puis mettre que dans le adhoc question. Selon moi, la deuxième condition devrait être plus rapide mais je ne vois pas encore de changement significatif dans les temps d'exécution des requêtes. Mais à mesure que la taille de la table augmente, laquelle va courir plus vite?
Les réponses standard sont: A) Pensez-vous que cela va vraiment avoir de l'importance? Et B) Si oui, testez-le avec vos données, structure de table, index, serveur, etc. :-) (Mais je m'attendrais à ce que le second soit plus optimisable, ce qui pourrait être plus rapide.) –
@TJCrowder: A it fait (erreur SQL commune). B pas besoin à cause de A – gbn
@gbn: La réponse à A n'est pas ** nécessairement ** que c'est important. Cela dépend de l'ensemble de données (par exemple, l'index est-il important). Erreur commune. ;-) –