It’s been several years since I started telling people that one of the solutions to dealing with optimizer problems was to adjust (or create) stored statistics using the dbms_stats procedure set_column_stats, set_index_stats, and set_table_stats.
Imagine my surprise to discover an old (2003) Metalink note confirming my claim that it is perfectly reasonable to take this approach. If you have an account, you will find a demonstration script in note 157276.1.
There’s also a note (dated Nov 2002) which contains a tidy looking script for reporting object statistics at the object, partition, and subpartition level. I haven’t tested it yet, but you might find it useful. The note number is 31412.1