A high library cache miss ratio could be caused by excessive parsing. If your application does not use bind variables then it will perform lots of parsing and have the possibility of not getting the library cache latch.
To determine if this is the case look at sql_text in v$sqlarea and check if bind variables are being used. Also you can check the value of "parse count" in v$sysstat. Additionally, you can query v$session_wait at regular intervals to determine if any sessions are waiting on the library cache latch.
If you have lots of different sql or pl/sql going through your database then you will need a big shared pool, although from my experience 250Mb is big.
The brain is a wonderful organ; it starts working the moment you get up in the morning and does not stop until you get into the office.