2013-07-17 17 views
6

Was bedeutet "Unique Scan", "Range Scan" und "Skip Scan"? Können wir explizit entscheiden, welchen Scan verwendet werden soll? Was sind die Vor- und Nachteile all dieser Scans?Entfernungsabtastung vs Einzelscan vs Überspringungssuche

+2

Ich habe nie von "Unix-Scan" in Oracle gehört. Ich denke du meinst "* unique * scan"? Und PL/SQL wird ** nur ** in gespeicherten Prozeduren verwendet. Alles andere ist "nur" SQL. Diese Seite könnte für Sie interessant sein: http://use-the-index-luke.com Alle Ausführungsvorgänge sind auch im Handbuch dokumentiert: http://docs.oracle.com/cd/E11882_01/server.112/e16638 /ex_plan.htm#i23461 –

+0

Ja ich meine einzigartigen Scan .. Danke für die Klärung, bearbeitet den Beitrag. –

+1

[Dieses Kapitel] (http://docs.oracle.com/cd/E16655_01/server.121/e15858/tgsql_optop.htm#CHDFJIJA) des SQL-Tuning-Handbuchs enthält eine gute Beschreibung der einzelnen von Ihnen erwähnten Indexzugriffsmethoden sowie einige andere. –

Antwort

9

Dies sind ziemlich selbsterklärend durch ihren Namen:

  • A "einzigartiger" Scan-Scans für einen einzelnen Wert in einem eindeutigen Index.

  • Ein "Bereich" -Scan beginnt bei einem Startwert und liest die Indexeinträge sequentiell (dh entlang des B-Baums), bis ein Wert gefunden wird, der über einen zweiten Wert hinausläuft (Suche nach einem einzelnen Wert) Wert auf einem nicht eindeutigen Index ist ein Bereichsscan, BTW).

  • Ein "Überspringen" -Scan verwendet nur die führende (n) Spalte (n) eines zusammengesetzten Indexes, um seine unterschiedlichen Werte zu berechnen (wenn also ein Wert gefunden wird, "springt" er über diesen Index, bis er den nächsten findet)).

ist Jedes geeignete (und optimal) für eine bestimmte Art von Aufzeichnungsanpassung. Das SQL-Optimierungsprogramm wählt fast immer das für eine bestimmte Situation am besten geeignete aus (wenn Statistiken aktuell sind).

Verwandte Themen