2016-04-30 2 views

Antwort

6

Die Dokumentation enthält nur einen Satz zu diesem Thema:
https://docs.oracle.com/database/121/TGSQL/tgsql_optop.htm#GUID-4180BA97-3E2C-41F9-B282-4FB3FF9532CB

Die Batched in Schritt gezeigt Zugriff 1 bedeutet, dass die Datenbank einen wenig Zeilen-IDs aus dem Index abgerufen hat, und versucht dann für den Zugriff auf Zeilen in Block Bestellung, um das Clustering zu verbessern und die Anzahl der Male zu reduzieren, die die Datenbank auf einen Block zugreifen muss.

Betrachten wir ein Beispiel unten der (vereinfachten) index

+-------------+------------------+ 
| index value | block nbr-rowid | 
+-------------+------------------+ 
|  1  | 015-00| 
|  2  | 034-000527  | 
|  3  | 088-000285  | 
|  4  | 015-000889  | 
|  5  | 088-000632  | 
........ 
........ 

In der "normalen" (nicht chargenweise) Methode Oracle ruft Zeilen in der Reihenfolge, die durch den Index bestimmt:

  1. ruft Block 15 ab, ruft dann Zeile 015-00von diesem Block ab
  2. ruft Block 34 ab, dann retrieve ves Zeilen 034-000527 aus diesem Block
  3. abruft Block 88, dann rufen Zeile 088 bis 000.285 aus diesem Block
  4. abruft Block 15 (wieder), dann ruft Zeile 015 bis 000.889 aus diesem Block
  5. abruft Block 88 (wieder), ruft dann Zeile 088 bis 000.632 aus diesem Block

im dosierten Verfahren Oracle einige Einträge aus dem Index liest, dann sortiert sie zunächst durch die Anzahl der bl ock, dann verarbeiten Einträge in der Reihenfolge nach der Anzahl der Blöcke bestimmt:

  1. abruft 15 blockiert, dann ruft Zeilen 015 bis 000.123 und von 015 bis 000.889 aus diesem Block
  2. abruft Block 34, ruft dann Zeile 034-000.527 aus diesem Block
  3. abruft Block 88, ruft dann Zeilen 088 bis 000.285 und von 088 bis 000.632 aus diesem Block

Wie man in diesem Beispiel zu sehen, die nur Blöcke wurden 3 mal anstelle von 5-mal, so dass eine Anzahl geholt der Block Lesevorgänge von der Festplatte wurde reduziert - einige Blöcke wurden nur gelesen y einmal statt zwei (oder mehr) mal.

Verwandte Themen