У меня есть таблица в моей базе данных, которая имеет поле даты (VisitDate
). Когда я выполнить следующий SQL запрос, я получаю результаты в 1 секунду:GroupBy() работает очень медленно
select year(VisitDate), month(visitDate)
from GABrowser
group by year(VisitDate), month(visitDate)
Однако в моем ASP.Net коде (в Visual Basic), последующие занимает 12 секунд, чтобы выполнить:
Dim stats = db.GABrowsers.GroupBy(Function(s) New With {s.VisitDate.Value.Year, s.VisitDate.Value.Month})
'(Takes 12 seconds to enter in the For loop)
For Each stat In stats
Next
Я не знаю, почему это так долго. Это приводит к тому, что мои веб-страницы загружаются очень медленно.
Необходимо посмотреть, что делает SQL Server. Можете ли вы запустить профилировщик SQL, чтобы узнать, какие команды отправляют ваше приложение на SQL Server? Затем вы увидите, что работает и как долго. –
Создайте кластерный указатель для VisitDate и опубликуйте свой SQL-запрос с помощью EF Profiler –
Я никогда не слышал о профилировщике SQL. Где я могу запустить это? – AskYous