If the joins in the current universe are wrong, then a correct universe would help, but the joins are the item to watch.
Look for tables only included to make a join between two tables you do need, shortcut joins can help here.
Par.part = Stock.part
and stock.part = Transaction.part
If this is the only reference to the table stock, we can do a shortcut join
Look for outer joins where the child has qualifiers on it, they do not need to be outer joins.
As an Oracle example
Part.part = transaction.part(+)
and Transaction.type = 'Issue'
this does not need to be an outer join
an oracle specific tip is to use optimiser hints
select /*+ all_rows */ Part.part,
Part.desc,
Transaction.date,
you can embed optimiser hints in the object definitions, so they always happen
I tried to remain child-like, all I acheived was childish.