Database Reference
In-Depth Information
11
Parameter CURSOR_SHARING
Literale in den SQL-Anweisungen sind die häufigste Ursache des harten Parsings und
der damit verbundenen Performanz-Probleme. Aus diesem Grund muss man möglichst
die Bind-Variablen statt Literale beim Programmieren der SQL-Anweisungen benutzen.
Wenn eine Anwendung bereits mit Literalen programmiert ist und man einige Parsing-
Probleme hat, ist es normalerweise nicht mehr möglich, Literale durch jeweilige Bind-Va-
riablen mit einer Programmänderung zu ersetzen, weil das zu teuer wird. In diesem Fall
hilft der Parameter cursor _ sharing , der in Oracle 8i eingeführt wurde.
11.1
Parameter CURSOR_SHARING vor Oracle 11g
Zunächst möchte ich den Parameter cursor _ sharing für die älteren Versionen als Oracle
11g beschreiben. Im Abschn. 11.4 sind die Besonderheiten dieses Parameters bei Oracle
11g präsentiert. Der Parameter cursor _ sharing kann die folgenden Werte annehmen:
• EXACT.DasistderVorgabewertdiesesParameters.BeidiesemWertwerdenLiteralein
den SQL-Anweisungen nicht ersetzt,
• FORCE.BeidiesemWertwerdenLiteraledurchsystemgenerierteBind-Variablener-
setzt. Dabei entsteht ein einziger Cursor, der für alle SQL-Anweisungen gemeinsam be-
nutzt wird, welche sich lediglich in Literalen unterscheiden. Es ist klar, dass der Ausfüh-
rungsplan dieses einzigen Cursors nicht unbedingt für alle dieser SQL-Anweisungen
optimal ist,
• SIMILAR.DieserParameterwertwurdeinOracle9ieingeführt,umdenobenbeschrie-
benen Nachteil des Parameterwertes FORCE zu beseitigen. Bei der Parametereinstel-
 
Search WWH ::




Custom Search