Well...my knowledge is from z/OS environment, but priciples are usually same.
Probably some of these are helpfull:
- your tables may be large and have no (good) indexes with matching columns.
- join predicate are not restictive enough and offers too little filtering (many-to-many join?)
- RUNSTATS ok? DB2 is thinking that both outer and inner table will produce a lot of rows - so MERGE SCAN is chosen.