The terms "bind-sensitive" and "bind-aware" are used when explaining Oracles Adaptive Cursor Sharing (ACS) feature.
Adaptive cursors sharing makes it possible for a single statement to use different execution plans, depending on the values of its bind variables.
Oracle explains the difference between bind-sensitive and bind-aware in their documentation like this:
"A bind-sensitive cursor is a cursor whose optimal plan may depend on the value of a bind variable."
and
"A bind-aware cursor is a bind-sensitive cursor that is eligible to use different plans for different bind values."
In other words, when a bind-sensitive cursor have been executed, the database saves the execution statistics for the new values, and compares them with the values used previously.
If (and only if) there is a significant change, Oracle marks the cursor as bind-aware.
During future executions of the cursor, the CBO will generate a plan based on the bind values and their cardinality estimates.
Minimalistic Oracle contains a collection of practical examples from my encounters with Oracle technologies. When relevant, I also write about other technologies, like Linux or PostgreSQL. Many of the posts starts with "how to" since they derive directly from my own personal experience. My goal is to provide simple examples, so that they can be easily adapted to other situations.
Showing posts with label cursors. Show all posts
Showing posts with label cursors. Show all posts
Friday, November 3, 2017
Subscribe to:
Posts (Atom)