Here's the deal:

I just left a site they've rewritten a number of their Select SQL statements from procedural
row by row processing to inserting into a temp table and then performing update execs to update the fields in
fields in the temp table that would have been retrieved by procedure calls.

Got it? (Well, even if you don't you may still be able to answer this question.)

Most DBA's I've run into say that update statements with sub-queries in them are a major "NO-NO!", but these
guys claim that it is more efficient to go back and do a series of update statements that sub-query to the temp
table (otherwise how would they know which rows to update) than to perform row by row processing branching
out each time to perform query to get that data (if applicable).

Now, while on site what they said made total sense to me (though it was hard to break from my old ways).
However, I happened to browsing through the Oracle books at the local borders books and found books that said
"Hey don't do this. Break it up and make it simple" or words to that effect (an Oracle tuning book by a guy name
Harris I particularly remember).

So my question is: Who's right? Or is this one of those product specific answer (Oracle vs Sybase) or perhaps
it's a Cost-based versus Rule-based optimizer question.

Any thoughts and definitive references would be appreciated.

Thanks,
Alan