Optimisation de la clause WHERE sur des champs dates
ThierH
Messages postés1Date d'inscriptionmercredi 21 mai 2008StatutMembreDernière intervention 1 novembre 2009
-
1 nov. 2009 à 18:38
crn_c21
Messages postés302Date d'inscriptionsamedi 24 janvier 2004StatutMembreDernière intervention 4 février 2011
-
11 nov. 2009 à 15:14
Bonjour
j'ai une table SQL Server (2005) contenant plus de 50000 lignes. Dans chaque ligne, j'ai des données de type datetime, integer, ...
Mon application permet de faire des recherches sur les dates, au choix sur un jour, un mois ou une année.
Actuellement, mes requêtes sont du style
SELECT * FROM table1 WHERE champDate = '1/1/2009' (pour un jour précis)
ou
SELECT * FROM table1 WHERE MONTH(champDate)=3 AND YEAR(champDate)=2009 (pour un mois précis)
ou
SELECT * FROM table1 WHERE YEAR(champDate) = 2009 (pour une année précise).
Question : est-ce que les requêtes utilisant MONTH() et YEAR() sont vraiment performantes ?
Je me demande si je ne devrais pas utiliser les fonctions de test > = et <= sur les dates, style
WHERE champDate >= '1/1/2009' AND champDate <='31/12/2009'
Qu'en pensez-vous ?
De plus, je présume qu'il y a aussi intérêt à avoir un index sur le champ date. Confirmez-vous ?
Merci
Thierry
A voir également:
Optimisation de la clause WHERE sur des champs dates