SELECT CONVERT(CHAR(4),YEAR(Hit.AddDate))+REPLACE(STR(MONTH(Hit.AddDate),2),' ','0')+ REPLACE(STR(DAY(Hit.AddDate),2),' ','0') AS lcChampNumero, COUNT(*) AS Compte,MIN(Hit.AddDate) AS AddDate FROM Hit WHERE Hit.NoServer=3 GROUP BY CONVERT(CHAR(4),YEAR(Hit.AddDate))+REPLACE(STR(MONTH(Hit.AddDate),2),' ','0')+ REPLACE(STR(DAY(Hit.AddDate),2),' ','0') ORDER BY 1 DESCI added an index NoServerAddDate which includes the NoServer and AddDate fields. I see that this has changed the execution plan. It does show that it uses it. However, my query is not any faster.