I'm not experienced with Oracle, but I'm sure you can have the same performance (or almost the same) with DB2. The first thing you must check, is your configuration. Are you comparing apples with apples? Do both databases reside on machines with same processor, same memory allocation (not in the machine, I'm talking from bufferpool allocation for DB2), same OS? Bonnie Baker (
www.bonniebaker.com) uses to say "if you by a pet and you don't by food for your pet, your pet won't be happy"...
For the query:
Did you run Explain on it? Which access path did DB2 choose?
Do you have the same indexes defined on both databases?
And, by the way, you can code your query as you did in Oracle:
create view z_workorder as
select
W.WONUM,
COALESCE(wl.description, w.description) description
from workorder w left outer join wo_lang wl
on w.wonum = wl.wonum
where wl.lang = get_lang()
If this query runs in a programm, I would first make a call for get_lang(), put the value on a host variable and change the where clause to "where wl.lang = :host_variable".
HTH.