This feature was
introduced in 11g release 1 to cater a performance issue caused by bind variable peeking. Adaptive cursor sharing means that if an SQL is
submitted for execution that has bind variables, and it already has an
execution plan in shared pool, still optimizer can generate a new execution
plan based on the values passed in the bind variable this time. This means that
on every call of an SQL, optimizer may use already available plans in the
shared pool, or it may generate a new one that is more efficient based on the
bind variable values.