- show your execution plan for 10.2.0.5 and 18.104.22.168
- if you are using literal instead of bind variables , read about "cursor_sharing"=FORCE parameter
- Were you gather Stats after upgrade?
- Were you using any hints on query?
Submit the sql to SQL tuning advisor. Once it suggests the profile create it with the FORCE MATCH = TRUE which will cause the profile to be shared between the statements that only differ on the literals, through the force matching signature.
If the SQL uses constants then what you probably want to look at are the histograms on the table and compare the type, number of buckets, etc ... between the two database and determine if differences in the histogram collection may be influncing the plan. Also checking the setting of cursor_sharing on both instances. would be worthwhile since a change could subject the SQL to bind variable peeking issues. Forcing cursor sharing can have wide ranging effects on performance and I have seen it do more harm than good, but some shops get away with it.
HTH -- Mark D Powell --