Library Cache

Pct Misses should be very low. If they exceed 10%, your SQL statements may use unsharable SQL. You can fix this by either using bind variables or by the cursor_sharing statement in your init.ora. Available values to this parameter are:
ValueComment
exact Only Statements with identical text are allowed to share a cursor (Default)
similiar Statements that may differ in some literals but are otherwise identical are caused to share a cursor, unless the literals affect either the meaning of the statement or the degree to which the plan is optimized (I recommend this for e.g. a low soft parse ratio or high library cache getmiss ratio).
force Even statements that may differ in some literals but are otherwise identical are forced to share a cursor, unless the literals affect the meaning of the statement (since this also means the optimizer cannot predict precise selectivity you should think twice before using this)
Since this parameter is dynamic, you may use ALTER SYSTEM to change its value without restarting the instance.

An important statistic to look at is the number or RELOADS. If there are significant number of RELOADS, then reusable information is being aged out of the SGA, and hence having to be reloaded and rebuilt. This indicates the shared pool may need attention (which may include resizing, changing large pool, pinning objects etc).

Also look for a high number of invalidations. An invalidation occurs when an object in the library cache is determined to be no longer valid for execution or reference; this housekeeping is done automatically by Oracle. One situation where objects are invalidated is when executing DDL operations frequently. The effects of invalidations can be reduced by executing DDL statements during off peak periods.