Это ваш запрос:
SELECT RR.ReportID, RR.RequestFormat, RRP.SequenceNumber,
RRP.ParameterName, RRP.ParameterValue
COALESCE(RP.ParameterLabelOvrrd, P.ParameterLabel) as ParameterLabelChosen,
RRP.ParameterValueEntered
FROM ReportRequestParameters RRP JOIN
ReportRequests RR
ON RRP.RequestID = RR.RequestID JOIN
ReportParameter RP
ON RP.ReportID = RR.ReportID AND
RP.SequenceNumber = RRP.SequenceNumber JOIN
Parameter P
ON P.ParameterID = RP.ParameterID
WHERE RRP.RequestID = 2226765
ORDER BY RRP.SequenceNumber;
Я удалил одинарные кавычки на 2226765
, предполагая, что id - это число. Смешивание может помешать оптимизатору.
Тогда я рекомендую индекс для ReportRequestParameters(RequestID, SequenceNumber)
. Я предполагаю, что другие таблицы имеют индексы на соответствующих столбцах, но это:
ReportRequests(RequestID, ReportID, SequenceNumber)
ReportParameter(ReportID, SequenceNumber, ParameterID)
Parameter(ParameterID)
Я настоятельно советую вам не использовать nolock
, если вы не знаете, что делаете. Аарон Бертран имеет хороший пост в блоге на эту тему.