I want to replace some OUTER APPLYs in my SQL because they seem to be a little bit slow and eating resources () on a poor VPS. I have no idea what to use instead? LEFT OUTER JOIN (??)
Here's my code
SELECT e.Id,
Decision.Comment,
Decision.DATE,
Decision.IsRejected,
Decision.CommentedBy
FROM core.Event e
OUTER APPLY (
SELECT TOP 1 ESH.Event_StatusHistory_Comment [Comment],
ESH.Event_StatusHistory_Date [Date],
ESH.Event_StatusHistory_IsRejected [IsRejected],
U.[Name] [CommentedBy]
FROM core.[Event] e2
JOIN core.Event_StatusHistory ESH
ON ESH.EventId = e2.Id
JOIN core.[User] U
ON ESH.Event_StatusHistory_UserId = U.Id
WHERE e2.ID = e.Id
) Decision
The query processor ran out of internal resources and could not produce a query plan. This is a rare event and only expected for extremely complex queries or queries that reference a very large number of tables or partitions.