По первой проблеме - присмотритесь к условию на SalesDeliveryNow - это не проблема с производительностью, это бага, какая-то добрая душа сэкономила пару скобок
PHP код:
while select salesLine
index hint SalesLineIdx
where salesLine.salesId == salesTable.salesId &&
((salesLine.salesStatus != SalesStatus::Invoiced &&
salesLine.salesStatus != SalesStatus::Canceled) ||
salesLine.SalesDeliverNow < 0)
Хохма в том, что о баге рапортовали в сервисную систему еще тем летом, был ответ, что уже исправлено. Я полез сейчас в SP4, чтобы процитировать оттуда, А БАГА НА МЕСТЕ