Лучше или хуже для производительности иметь предложение WHERE в ваших коррелированных вложенных запросах или просто предложение WHERE в вашем внешнем запросе ... ex: Ниже вложенный запрос определяет price_key, но внешний запрос имеет ссылки на price_key и также определяется во внешних запросов ИНЕКЕОптимизация запросов для взаимосвязанных вложенных запросов (SQL Server)
INNER JOIN (
SELECT inv.item_key, s.price_key, MAX(inv.last_receive_cost/inv.last_receive_units_case) AS [unit_cost]
FROM inventory inv
INNER JOIN stores s on inv.location_key = s.store_key
WHERE inv.on_hand_inventory_qty > 0
AND inv.last_receive_cost > 0
AND inv.last_receive_units_case > 0
AND s.price_key = (29)
GROUP BY inv.item_key, s.price_key
) t ON r.item_key = t.item_key and r.price_key = t.price_key
лучше фильтровать рано – Paparazzi
Вы можете просто поставить обе версии рядом друг с другом и посмотреть на результирующие планы запросов. Не удивительно, если выяснится, что оптимизатор запросов использует один и тот же план запросов для обеих версий. – deroby