Как оптимизировать вложенные запросы?

Есть большой репорт состоящий из запросов типо:
Revision as
(Select Registrations.new_studentid,
        Registrations.New_StudentIdName,
        Filteredcontact.new_accanumber,
        Registrations.new_attendancepercent,
        FilteredNew_Event.New_CourseTypeIdName,
        FilteredNew_Event.New_SessionId,
        FilteredNew_Event.New_SessionIdName,
        FilteredNew_CourseType.New_TrackId,
        FilteredNew_CourseType.New_TrackIdName,
        FilteredNew_CourseType.New_CoursePaperId,
        FilteredNew_CourseType.new_coursepaperidname,
        Registrations.New_companyidname
 From Registrations
 left join FilteredNew_Event on Registrations.New_EventId=FilteredNew_Event.New_EventId
 left join FilteredNew_CourseType on FilteredNew_Event.New_CourseTypeId=FilteredNew_Coursetype.New_CourseTypeId
 left join Filteredcontact on Filteredcontact.contactid = Registrations.new_studentid
 
 Where FilteredNew_CourseType.New_SubTypeId = 'D24330DC-80E3-DB11-AC8D-003048873EE1'),


Каким образом можно оптимизировать такой тип запроса?

Запрос полностью: pastebin.com/Uh7makts
  • Вопрос задан
  • 393 просмотра
Решения вопроса 1
@dmitryKovalskiy
программист средней руки
Внешне - нормальный запрос без перегибов. Проблема в чем? Долго выполняется?
Без размера таблиц сложно что-то порекомендовать.
Вы джойните Filteredcontact ради 1 поля. Без него никак?

UPD: К тому же это же отчет, а не запрос для отрисовки интерфейса пользователю. Он ведь не по 40 минут строится?
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
IamKarlson
@IamKarlson
ASP(?).NET, SQL-разработчик
А вы пробовали временные таблицы? Если выборки из подзапросов не большого размера, то можно просто через временные таблицы построить. На больших выборках, можно тоже временные таблицы, но они будут много скушивать с сервера памяти, и если её не хватит то производительность наоборот упадет. Но если у вас эти подзапросы постоянные, то может стоит сделать материализованные вьюхи, например? Или в принципе подумать над ненормализованной структурой бд.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы