Database Reference
In-Depth Information
lung cursor _ sharing = similar können mehrere Cursor entstehen. Ein neuer Cursor wird
angelegt, wenn
− kein Cursor mit systemgenerierten Bind-Variablen für die jeweilige SQL-Anweisung
existiert oder
− mindestens ein Cursor mit systemgenerierten Bind-Variablen für die jeweilige SQL-
Anweisung angelegt ist, darunter aber kein Cursor mit den Bind-Werten, die mit den
Literalen der jeweiligen SQL-Anweisung übereinstimmen (wenn solch ein Cursor
bereits existiert, wird dieser Cursor für die jeweilige SQL-Anweisung benutzt). Für
das Anlegen eines neuen Cursors muss noch eine Bedingung erfüllt werden: Es müs-
sen Histogramme für die Spalten aus den Prädikaten der jeweiligen SQL-Anweisung
existieren, die für diese Prädikate auszuwerten sind.
Peter: „ Verstehe ich richting, dass Oracle dieselbe Anzahl der Cursor mit systemgenerierten
Bind-Variablen bei der Parametereinstellung cursor _ sharing = similar wie bei der Parame-
tereinstellung cursor _ sharing = exact für eine SQL-Anweisung mit verschiedenen Literalen
erzeugen kann?
Leonid: „ Du verstehst das richtig. Wenn keine Histogramme für die Spalten aus der Whe-
re-Bedingung einer SQL-Anweisung mit Literalen vorhanden sind (welche Oracle für die je-
weilige Prädikate anwenden kann), wird ein einziger Cursor bei der Parametereinstellung
cursor _ sharing = similar angelegt. Ansonsten wird ein Cursor mit systemgenerierten Bind-
Variablen pro einen Satz der Literale erzeugt. Das Skript test_case_cursor_sharing0_10.sql
demonstriert das.
Search WWH ::




Custom Search