So überwachen Sie Platz in Ihrem Segmente in Oracle 12c

Segmente

sind Objekte, die Speicherplatz in der Datenbank in Oracle 12c aufzunehmen. Segmente sind Objekte, die, wenn sie erzeugt wird, zugeordnet eine oder mehrere Ausdehnungen aus dem freien Raum in Ihrem Tablespaces. Die beiden häufigsten Datenbank Segmente

  • Tische

  • Indizes

Tabellen sind, welche Daten halten und Indizes sind Zugriffs Zeiger auf Datenelemente in einer Tabelle. Verwaltung von Speicherplatz für Tabellen und Indizes sind sehr ähnlich- jedoch gelten die gleichen Konzepte und Techniken für die Index-Space-Management.

Bevor Sie Daten in einer Tabelle setzen, geht Oracle auf den Tabellen wo sie lebt und ordnet eine Ausdehnung. Sie können diese einen Anruf gebrauchte Ausmaß weil es zu einem Objekt gehört. Der verbleibende Raum in dem Tabellen ist frei Ausdehnungen Sie verwenden können, wenn Objekte wachsen oder neue Objekte erstellt werden.

Wie Sie Daten beginnen in dieser Tabelle setzen, das Ausmaß, die bei der Erstellung zugewiesen wurde beginnt sich zu füllen. Wenn das Ausmaß Kapazität erreicht hat, geht der Tabelle auf den Tabellen und packt einen anderen Teil. Dieser Zyklus wird fortgesetzt, bis entweder Sie Hinzufügen von Daten zu stoppen oder die Tabellen läuft aus freien Speicherplatz.

Wenn der Tabellenbereich aus freien Raum läuft, erzeugt der Prozess den Raum anfordert eine Fehlermeldung und entweder ausfällt oder vorübergehend ausgesetzt, bis Speicherplatz hinzugefügt wird.

Wie zu wachsen und schrumpfen Tabellen in Oracle 12c

Eine Tabelle, die in diese Kategorie fällt vielleicht jede Nacht und dann von den ganzen Tag, wie eine Batch-Verarbeitung Tabelle gelöscht geladen werden.

Um zum Beispiel eine Tabelle ORDERS betrachten, die Partie in der Nacht geladen wird von allen Aufträgen, die von einem Website- genommen wurden, da die Aufträge am nächsten Tag verarbeitet werden, werden Zeilen nacheinander gelöscht. Am Ende des Tages, werden alle Zeilen sind verschwunden. Was brauchen Sie für diese Tabelle zu überwachen?

Sie sollten sehr besorgt sein, wie groß die Tabelle, die jeden Tag nach der Batch-Last wird. Unternehmen wollen Aufträge zu erhöhen. Was ist mit den Löschungen? Sollten Sie in der Tabelle am Ende des Tages, bevor die nächste Charge Last schrumpfen um Speicherplatz freizugeben? Absolut nicht.

Obwohl es klein ist, ist das Wachstum eines Objektes Overhead auf der Systemverarbeitung. Durch es die gleiche Größe von Tag zu Tag zu verlassen, wissen Sie, der Raum wird ständig wiederverwendet werden. Sie in erster Linie wollen für das Wachstum dieser Art von Objekt zu überwachen.

Was ist eine Tabelle, die Sie hinzufügen und auf einer häufigen Basis zu löschen? Sprich für je 1 Million Zeilen in einer Woche eingefügt werden 30 Prozent gestrichen. Diese Tabelle kann eine interessante Herausforderung.

Werfen Sie einen Blick auf, wie Zeilen eingefügt werden, um besser zu verstehen, wie Objekte wachsen und die Nutzung Raum:

  • Sie haben eine neue Tabelle mit einem 64k Ausmaß.

  • Ihre Blockgröße 4k, so dass Umfang ist 16 Blöcke.

  • Sie starten das Einfügen-Daten- 100 Zeilen einen Block passen.

  • Standardmäßig füllt Oracle-Blöcke zu 90 Prozent voll und bleibt dann stehen. Zum Beispiel werden einige Felder bis zu einem späteren Zeitpunkt null links, und man sie dann füllen. Sie wollen nicht den Block zu leicht durch einen Update- gefüllt zu bekommen sonst Oracle muss die Zeile zu einem neuen Block zu bewegen, die es passt . Dies Reihen Migration beeinträchtigt die Leistung.

  • Wenn alle Blöcke in den freien Ausdehnungen gefüllt sind, weist der Tisch einen neuen Grad und der Prozess beginnt von vorne.

Obwohl Oracle die Performance-Overhead reduziert hat, die mit der Verwaltung von Blöcken kommt und welche Sie Daten in einfügen können, Speicherverwaltungs-Block hat immer noch einen damit verbundenen Kosten.

Stellen Sie sich vor Sie haben eine Tabelle mit 10.000 Blöcken und Sie sind ständig Einfügen und aus der Tabelle zu löschen. Oracle konnte alle CPU-Zyklen die Verwaltung ausgeben, was Blöcke Einsätze haben können und welche nicht, wenn es gab nur eine einzeilige Unterschied zwischen Voll- und nicht-voll-Blöcke.

Deshalb Oracle nutzt die 40-Prozent-Regel. Ein Block nimmt alle Einsätze kann es bis zu 90 Prozent voll ist, aber der Block kann nicht wieder in Einklang zu bekommen, bis er auf 40 Prozent voll reduziert worden ist.

Wie zu schrumpfen Tabellen in Oracle 12c

Sie müssen entscheiden, ob Sie ein Objekt der Raum freigeben kann, nachdem die Objektnutzungsmuster auswerten. Die Bestimmung, ob Sie ein Objekt der Raum freigeben kann erfordert ein wenig Arithmetik. Bevor Sie entscheiden, ob sie Zimmer in einer Tabelle zu machen, müssen Sie die Tabelle zu analysieren, um Statistiken zu sammeln.

Der Befehl ANALYZE bekommt die notwendigen Statistiken Diese rechen- DBMS_STATS zu tun bekommen nicht diese Statistiken.

Dieses Beispiel verwendet die Tabelle emp. Um zu analysieren, in geeigneter Weise die Tabelle, nehmen Sie die folgenden Schritte:

  1. Melden Sie sich bei SQL * Plus und Typ

    lt; analysieren Tabelle emp Compute Statistik->

    Du siehst das:

    Tabelle analysiert.
  2. Führen Sie eine Abfrage der USER_TABLES Ansicht durch Eingabe von

    Sie sehen etwas wie folgt aus:

    TABLE_NAME AVG_SPACE BLOCKS ------------------------------ ---------- ------- --- EMP 32644528

    Die AVG_SPACE Spalte zeigt die durchschnittliche Menge an freiem Speicherplatz pro Block.

  3. Verwenden Sie die folgende Formel, um die Menge von leeren Raum in der Tabelle emp zu berechnen:

    (AVG_SPACE - (DB_BLOCK_SIZE x FREE_SPACE)) x TAB_BLOCKS

    In diesem Beispiel sieht die Formel wie folgt aus:

    (3623 - (8192 x 0,10)) x 4528 = 11.066.432 (ca. 11MB)

  4. Entscheiden Sie, ob es genug Platz, um es sich lohnt, das Objekt zu verkleinern.

  5. So aktivieren Sie Oracle Reihen um in den Tabellentyp zu verschieben, setzen Sie den folgenden SQL-Befehl:

    Du siehst das:

    Tabelle geändert.
  6. Geben Sie diesen SQL-Befehl der Schrumpf zu tun:

    Du siehst das:

    Tabelle geändert.
  7. Re-Analyse der Tabelle und erneut ausführen, die Abfrage, um die Statistiken zu überprüfen.

    Sie sollten etwas sehen:

    TABLE_NAME AVG_SPACE BLOCKS ------------------------------ ---------- ------- --- EMP 9332979

    Wie Sie sehen können, ist die AVG_SPACE etwa 10 Prozent der Blockgröße. Dies ist für Standard-Blockraumorganisation normal.

Menü