Inhaltsverzeichnis:
Video: SQL Einführung - SQL 1 ● Gehe auf SIMPLECLUB.DE/GO & werde #EinserSchüler 2024
Alle logischen Strukturen, die Sie sehen werden, befinden sich in den Datendateien der Datenbank. Die logischen Strukturen von Oracle 12c ermöglichen es Ihnen, Ihre Daten in überschaubare und logische Teile zu organisieren.
Betrachten wir die Beziehung zwischen logischen und physischen Objekten. Der Pfeil zeigt in Richtung einer Eins-zu-Viele-Beziehung.
Tablespaces in Oracle 12c
Tablespaces sind die erste Ebene der logischen Organisation Ihres physischen Speichers.
Jede 12c-Datenbank sollte die folgenden Tablespaces haben:
-
SYSTEM: Speichert die Kerndatenbankobjekte, die zum Ausführen der Datenbank selbst verwendet werden.
-
SYSAUX: Für Objekte, die eine Hilfsfunktion haben und nicht spezifisch an die Kernfunktionen der Datenbank gebunden sind.
-
UNDO: Speichert die Rollback- oder Rückgängig-Segmente für die Transaktionswiederherstellung.
-
TEMP: Zur temporären Speicherung.
Jeder Tablespace ist für die Organisation einer oder mehrerer Datendateien verantwortlich. In der Regel kann jeder Tabellenbereich an eine Datendatei angefügt werden. Wenn die Datenbank jedoch wächst und Ihre Dateien groß werden, können Sie entscheiden, Speicher in Form von mehreren Datendateien hinzuzufügen.
Was ist der nächste Schritt, um Ihre Datenbank zum Laufen zu bringen? Sie erstellen einige Bereiche zum Speichern Ihrer Daten. Angenommen, Ihre Datenbank verfügt über Verkaufs- und Personalressourcen, Buchhaltungsdaten und historische Daten. Sie haben möglicherweise folgende Tablespaces:
-
SALES_DATA
-
SALES_INDEX
-
HR_DATA
-
HR_INDEX
-
ACCOUNTING_DATA
-
ACCOUNTING_INDEX
-
HISTORY_DATA
-
HISTORY_INDEX
Segmente in Oracle 12c
Segmente sind die nächste logische Speicherstruktur nach Tablespaces. Segmente sind Objekte in der Datenbank, die physische Speicherung erfordern und Folgendes enthalten:
-
Tabellen
-
Indizes
-
Materialisierte Ansichten
-
Partitionen
Diese Objektbeispiele sind nicht < Segmente und speichern keine Ist-Daten: Prozeduren
-
Synonyme
-
Sequenzen
-
Letztere Liste von Objekten ist nicht in einem Tablespace mit Segmenten angesiedelt. Sie sind Teile des Codes, die im SYSTEM-Tablespace enthalten sind.
Geben Sie beim Erstellen eines Segments an, in welchen Tablespace es ein Teil sein soll. Dies hilft bei der Leistung.
Ausdehnungen in Oracle 12c
Ausdehnungen
sind wie die Jahresringe eines Baums. Wann immer ein Segment wächst, gewinnt es ein neues Ausmaß. Wenn Sie zuerst eine Tabelle zum Speichern von Elementen erstellen, erhält sie ihre erste Ausdehnung. Wenn Sie Daten in diese Tabelle einfügen, füllt sich dieser Bereich. Wenn die Ausdehnung voll ist, greift sie ein anderes Ausmaß aus dem Tablespace heraus. Wenn Sie zum ersten Mal einen Tablespace erstellen, handelt es sich um freien Speicherplatz. Wenn Sie mit dem Erstellen von Objekten beginnen, wird dieser freie Speicherplatz Segmenten in Form von Extents zugewiesen. Ihr durchschnittlicher Tablespace besteht aus benutzten Extents und freiem Speicherplatz.
Wenn der gesamte freie Speicherplatz belegt ist, ist diese Datendatei nicht mehr genügend Platz. Dies ist der Zeitpunkt, an dem Ihre DBA-Kenntnisse in Kraft treten und Sie entscheiden, wie Sie mehr freien Speicherplatz für die Segmente bereitstellen können, um sie weiter auszubauen.
Extents sind nicht notwendigerweise zusammenhängend. Wenn Sie beispielsweise eine Elementtabelle erstellen und die ersten 1 000 Elemente einfügen, kann sie sich mehrmals vergrößern und erweitern. Jetzt könnte Ihr Segment aus fünf Extents bestehen. Sie erstellen jedoch auch eine neue Tabelle.
Da jede Tabelle in einem neuen Tablespace erstellt wird, beginnt sie am Anfang der Datendatei. Nachdem Sie Ihre zweite Tabelle erstellt haben, muss Ihre erste Tabelle möglicherweise erneut erweitert werden. Seine nächste Ausdehnung kommt nach der zweiten Ausdehnung. Am Ende haben alle Objekte, die einen Tablespace teilen, ihre Extents vermischt.
Das ist keine schlechte Sache. In den vergangenen Jahren, bevor Oracle bessere Algorithmen für die Speicherung hatte, verbrachten die Datenbankadministratoren viel Zeit und Anstrengungen, um diese Größenordnungen zu vereinen. Es wurde
Fragmentierung genannt. Das gehört der Vergangenheit an. Lass dich nicht einsaugen! Lass es einfach sein. Oracle 12c ist in der Lage, solche Situationen zu bewältigen. Es gibt Situationen, in denen Sie mehrere Datendateien in einem Tablespace haben. Wenn ein Tablespace mehr als eine Datendatei enthält, erstellt der Tablespace automatisch Extents auf Round-Robin-Weise für alle Datendateien. Dies ist eine weitere Oracle-Leistungsfunktion.
Angenommen, Sie haben eine große Tabelle, die die meisten Ihrer Anwendungen unterstützt. Es lebt in einem Tablespace aus vier Datendateien. Wenn die Tabelle erweitert wird, ordnet Oracle die Extents für jede Datendatei folgendermaßen zu:
1, 2, 3, 4, 1, 2, 3, 4, 1, 2, 3, 4 usw. usw.
So kann Oracle die Daten, die auf viele physische Geräte verteilt werden, nutzen, wenn Benutzer auf Daten zugreifen. Es reduziert Konflikte auf Segmente, die viel Aktivität haben.
Oracle-Blöcke in Oracle 12c
Ein
Oracle-Block ist die kleinste Einheit, die Oracle zu einem bestimmten Zeitpunkt lesen oder schreiben kann. Oracle liest und schreibt normalerweise mehr als einen Block gleichzeitig, aber das ist Oracle heutzutage. Früher hatten Sie mehr direkte Kontrolle darüber, wie Oracle seine Lese- und Schreibvorgänge von Blöcken verwaltet, aber jetzt wird die Funktionalität automatisch angepasst. Sie können es bis zu einem gewissen Grad manuell abstimmen, aber die meisten Installationen sollten am besten Oracle überlassen werden.
Oracle findet das Segment.
-
Oracle fragt dieses Segment, ob es Platz gibt.
-
Das Segment gibt einen Block zurück, der nicht voll ist.
-
Der Zeilen- oder Indexeintrag wird diesem Block hinzugefügt.
-
Oracle-Blöcke haben ebenso ein physisches Gegenstück wie die Datendateien. Oracle-Blöcke bestehen aus OS-Blöcken. Es ist die formatierte Größe der minimalen Speichereinheit auf dem Gerät.