Я заметил, как только я добавил соединения к некоторым из моих запросов, время, которое потребовалось для их выполнения, было больше, чем просто выполнение нескольких запросов.
Время включает в себя загрузку страницы и в среднем более 20 загрузок страницы.
7-9 запросов без объединений
159ms
3 запроса с 2 объединениями
235ms
Должен ли я просто продолжить работу с несколькими запросами вместо объединений, учитывая, что они, кажется, так сильно влияют на производительность? Вероятно, я даже могу оптимизировать метод множественных запросов, так как я даже лениво загружался во время этих тестов.
EDIT
Я создам некоторую ложную информацию ради вопроса.
Объекты таблицы
ID (int, identity, PK, кластерный индекс)
UserID (int, некластеризованный индекс)
CategoryID (int, некластеризованный индекс)
Таблица пользователей
ID (int, identity, PK, кластерный индекс)
Категории таблиц
ID (int, identity, PK, кластерный индекс)
Довольно просто. Это двойной запрос внутреннего соединения к таблице объектов. Запрос всех 3 по отдельности, кажется, быстрее, чем объединение.
План запроса для объединения показывает 42% выполненных за 2 поиска кластеризованного индекса, 23% - сканирование кластеризованного индекса, а остальное - сортировка по Top N