ТАБЛИЦЫ (упрощенно)
Таблица мультимедиа
mediaID description multimediaGroupID silolID fcsPathHigh fcsPathLow
----------------------------------------------------------------------------------
1 media1 11 6 blah blah
2 media2 12 6 blah blah
Таблица мультимедийной группы
multimediaGroupID multimediaGroup isPollGroup
------------------------------------------------
11 You be the ref 1
12 Try of the week 1
Получил этот запрос, который я не знаю 'т оптимальный.Мне не нравится подзапрос в нем.
SELECT top 30 *
FROM media
WHERE (remoteMedia = 1) AND multimediaGroupID <> 13 AND siloID <> 16
AND siloID = 1 AND (fcsPathHigh like '%.flv' AND fcsPathLow like '%.flv')
AND (multimediagroupid is null or multimediagroupid not in
(select multimediagroupid
from multimediagroups
where ispollgroup = 1))
ORDER BY dateUploaded DESC
Может кто-нибудь предложить способ оптимизировать его без следующего раздела подзапроса:
and (multimediagroupid is null
or multimediagroupid not in
(select multimediagroupid
from multimediagroups
where ispollgroup = 1))
Я также думаю об использовании WITH(NOLOCK), чтобы ускорить его, поскольку иногда он работает довольно медленно и может вызвать сбой сервера.