Database Reference
In-Depth Information
11.2
User Bind Peeking bei der Parametereinstellung
CURSOR_SHARING<>EXACT
Leonid: „ Peter, ich habe eine Frage an dich. Wird User Bind Peeking für systemgenerierte
Bind-Variablen bei der Parametereinstellung cursor _ sharing <> exact benutzt oder nicht?
Peter: „ Warum sollte es nicht benutzt werden?
L: „ Oracle hat die jeweiligen Literale in der originellen SQL-Anweisung und kann theore-
tisch diese Literale beim Erstellen des Ausführungsplans ohne User Bind Peeking gebrauchen.
Im Internet findet man verschiedene Meinungen dazu.
P.: „ Ist es wichtig für die Praxis?
L.: „ Ja, weil es einen direkten Einfluss auf die Performanz hat. Wenn man beispielsweise
User Bind Peeking ausschaltet, wirkt es auf SQL-Anweisungen mit systemgenerierten Bind-
Variablen? Ich denke schon, dass meine Frage für die Praxis wichtig ist.
P: „ Ehrlich gesagt, weiß ich nicht, wie Deine Frage zu beantworten ist. Es gibt Pro und
Kontra für jede Variante.
L.: „ Dann versuchen wir, die richtige Antwort mit dem Skript test_case_bind_peek_cur-
sor_sharing.sql zu finden.
Legen wir eine Tabelle T1 an.
64/!FUHDWHWDEOHWFQXPEHUFQXPEHU
7DEOHFUHDWHG
64/!LQVHUWLQWRWVHOHFWOHYHOIURPGXDOFRQQHFWE\OHYHO
URZVFUHDWHG
64/!LQVHUWLQWRWYDOXHV
URZFUHDWHG
64/!LQVHUWLQWRWYDOXHV
URZFUHDWHG
64/!FRPPLW
&RPPLWFRPSOHWH
64/!H[HFGEPVBVWDWVJDWKHUBWDEOHBVWDWVXVHU7PHWKRGBRSW !)25$//&2/8016VL]H
3/64/SURFHGXUHVXFFHVVIXOO\FRPSOHWHG
Die Tabelle T1 ist so mit den Daten gefüllt, dass 10.000 Datensätze den Wert 1 für die
Spalte „C1“ haben. Für die Werte 2 und 3 gibt es jeweils 1 Datensatz. Zunächst schalten wir
User Bind Peeking ab und führen 2 SQL-Anweisungen aus: eine mit der Bind-Variablen
und mit dem Bind-Wert 2, die andere mit dem Literal 2 und mit der Parametereinstellung
cursor _ sharing = force .
Search WWH ::




Custom Search