Конечно нужно смотреть предполагаемый и действительный план выполнения запроса.
Но попробуйте добавить
ORDER BY
по кластерному индексу. Или есть индекс по
login
?
Без подзапросов и
SELECT TOP
DECLARE @StartDate DATE = DATEADD(DAY,-10,CONVERT(DATE,GETDATE())),
@EndDate DATE = CONVERT(DATE,GETDATE())
SELECT CONVERT(DATE, logDateTime), [login]
FROM SiemensLicUsage
WHERE (licId = 'cam_base') AND ([filename] = '109012981')
AND CONVERT(DATE, logDateTime) BETWEEN @StartDate AND @EndDate
GROUP BY CONVERT(DATE, logDateTime), [login]