У меня есть две таблицы. Одна таблица содержит информацию об активах, другую таблицу об их отношении. Как можно оптимизировать текущий запрос и получить аналогичные результаты.Проблема оптимизации SQL
SELECT a1.ID FROM Asset a1
WHERE a1.AssetId =
(SELECT r.DestinationAssetId
FROM Relation r
INNER JOIN Asset a2 ON a2.AssetId = r.SourceAssetId
WHERE a2.ID = '1112174' and r.RelationshipType = 'Video File')
Результаты: 13412331 (Идентификатор актива, который связан с a2.ID = «1125574»)
Лично мне не нравится этот глупый вспомогательный запрос, он каким-либо образом я могу избежать этого и оптимизируйте этот запрос.
Спасибо!
Какую базу данных вы используете? Почему вы не можете подключиться к активу? –
MSQL, я могу присоединиться к Relation to Asset, и я делаю это в подзапросе. Но как получить одинаковые результаты в одном запросе. –
Оптимизация также предполагает, что колонки JOINed имеют соответствующие типы данных и что подходящие индексы находятся на своем месте. Вы должны взглянуть на план _query_, который SQL Server генерирует, чтобы видеть, где он проводит свое время. – HABO