РЕДАКТИРОВАТЬ: I думаю это Я могу запустить эквивалентное приложение Rails / Grails без каких-либо проблем с производительностью. (Двухъядерный, 3 ГБ ОЗУ)
Выбор счетчика (*) в GlobalView возвращает ~ 270 000 строк, индексы перестраиваются ежедневно, а объяснение показывает, что используются все кластерные индексы.
Я получаю среднее время ответа HTTP: 8000 мс, SQL Server Management Studio показывает среднее время ЦП для этого SQL-запроса 866 мс и средний логический IO 7 592,03.
Размер файла базы данных, если ~ 180 МБ
Я использую Windows Server 2008 R2 Enterprise Edition, ASP. NET MVC 2 с IIS 7.5 и SQL Server 2008 R2 Express Edition с расширенными службами. Они единственные, кто работает на этом сервере.
Что я могу сделать?
Спасибо
Я обнаружил проблему,
Я заменил «orderby globalView.MessagePostDate по убыванию» на «orderby globalView.MessageId по убыванию», потому что в MessagePostDate нет индекса, и это намного лучше!
Спасибо
Просто из любопытства: разве добавление .ToList()
в конец var messages = ...
строка поможет?
Я думаю, вы получили запрос от SQL Server Profiler. Сохраните результат и передайте его помощнику по настройке ядра СУБД. Это может помочь вам создать дополнительные индексы и статистику.