Я не думаю, что тот факт, что ваш Phone
относится к типу NVARCHAR(10)
, является причиной низкой производительности.
Прежде всего, вы должны убедиться, что у вас есть индекс для столбца vardatetime
в таблице ApplicationVariables
(включая столбец Phone
).
CREATE INDEX IX_AppVar_VarDateTime
ON dbo.ApplicationVariables(vardatetime) INCLUDE(Phone)
Во-вторых, вы должны изменить запрос, чтобы можно было использовать этот индекс:
SELECT distinct Phone
FROM ApplicationVariables
WHERE vardatetime >= DATEADD(MINUTE, -300, GETDATE())
Также: я бы порекомендовал использовать спецификатор MINUTE
для DATEDADD
или DATEDIFF
- гораздо более понятное, что вы пытаетесь сделать.