Использование BETWEEN с YEAR () и MONTH () в любом случае разрушит любой шанс использования индексов для этого столбца.Я бы использовал:
SELECT
COUNT(*) AS [count],
YEAR(my_date) AS [year],
MONTH(my_date) AS [month]
FROM
Downloads
WHERE
my_date >= '2009-08-01' AND
my_date < '2010-06-01'
GROUP BY
YEAR(my_date),
MONTH(my_date)
ORDER BY
YEAR(my_date), MONTH(my_date)
(я использовал my_date, потому что не могу заставить себя ссылаться на столбец как DateTime):)