Код ниже взят из отчета SSRS, выполнение которого занимает много времени. Он извлекает данные из архивной таблицы, в которой содержатся миллионы записей. Код не был написан мной, поэтому я не очень понимаю его. Есть ли способ оптимизировать следующий код? Это часть кода, которая вызывает проблемы при проверке с монитора активности. Создание индекса в БД тоже занимает много времени. Есть ли лучший метод?
Insert into #MandrillResponses
select EmailResultID, eventtype,
case when IsNull(count(*),0) > 0 then 1 else 0 end
from #EmailsSent s
join TDN_MandrillResponse r on (s.UniqueID = r.EmailResultID) where eventtype not in ('open','click','Deferral')
group by EmailResultID, eventtype
insert into #MandrillResponses
select EmailResultID, eventtype, max(count)
from #EmailsSent s
join TDN_MandrillResponse r on (s.UniqueID = r.EmailResultID) where eventtype in ('open','click','Deferral')
group by EmailResultID, eventtype
UNION
select EmailResultID, eventtype, max(count)
from #EmailsSent s
join archive_TDN_MandrillResponse r on (s.UniqueID = r.EmailResultID) where eventtype in ('open','click','Deferral')
group by EmailResultID, eventtype;