Database Reference
In-Depth Information
9
Dynamic Sampling
Wenn keine Optimizer-Statistiken für eine Tabelle vorhanden sind, ist es sinnvoll, diese
Statistiken dynamisch zu erstellen (also bei Parsing bzw. bei Ausführung der jeweiligen
SQL-Anweisung). Das war einer der Gründe für die Einführung von Dynamic Sampling
in Oracle 9.2.
In einigen Situationen muss Oracle gewisse Annahmen bei der Einschätzung der Kar-
dinalität bzw. der Selektivität machen. Auch wenn Optimizer-Statistiken vorhanden sind,
können sie nicht ausreichend sein (z. B. bei Prädikaten, welche sich auf mehrere Spalten
einer Tabelle beziehen). In solchen Fällen kann Dynamic Sampling auch aktiviert werden,
um zusätzliche Statistiken zu erstellen und dadurch die Annahmen beim Errechnen des
Ausführungsplans zu vermeiden. Für die Ermittlung dieser Statistiken generiert Oracle
spezielle SQL-Anweisungen, die entweder alle Tabellenblöcke oder einen bestimmten Pro-
zentsatz der Tabellenblöcke überprüfen.
Dynamic Sampling wird durch den jeweiligen Level gesteuert. Der Level 0 bedeutet,
dass Dynamic Sampling ausgeschaltet ist. Die Levels 1 und 2 steuern Dynamic Sampling
für Tabellen ohne Optimizer-Statistiken. Bei diesem Level werden Statistiken stillschwei-
gend auf der Basis von 32 zufällig gewählten Tabellenblöcken gesammelt (32 ist der Vor-
gabewert des Parameters _ optimizer _ dyn _ smp _ blks ). Die Anzahl dieser Blöcke wird von
Oracle intern in den Prozentsatz umgerechnet und in der Klausel SAMPLE BLOCK der
für Dynamic Sampling generierten SQL-Anweisung benutzt. Bei den Levels 3 und 4
wird Dynamic Sampling zum einen auch für die Tabellen ohne Optimizer-Statistiken ge-
braucht, zum anderen wird Dynamic Sampling in den Situationen angewendet, in denen
Oracle ansonsten Annahmen gemacht hätte. Die Anzahl der zu prüfenden Blöcke für die
Tabellen ohne Statistiken ist dabei gleich dem verdoppelten Parameterwert von _ optimi -
zer _ dyn _ smp _ blks . Für die sonstigen Tabelle (also mit den Optimizer-Statistiken) werden
so viele Blöcke bei den Levels 3 und 4 geprüft, wie die Parametereinstellung _ optimizer _
dyn _ smp _ blks vorgibt. Bei den Levels von 5 bis 9 wird Dynamic Sampling für die Tabellen
angewendet, für welche das Kriterium des Levels 4 erfüllt ist. Die Anzahl der zu prüfenden
Search WWH ::




Custom Search