Sollte eine Oracle-Datenbank mehr als einen Tabellenbereich für die Datenspeicherung hat?

StackOverflow https://stackoverflow.com/questions/1291317

  •  18-09-2019
  •  | 
  •  

Frage

Mein Team hält eine Oracle-Datenbank, die ca. 200 GB groß. Alle Daten (Tabellen, Indizes usw.) lebt in einer einzigen ‚Nutzer‘ Tabellen. Ist dies eine schlechte Idee? Welche Vorteile gibt es mehrere Tablespaces mit, und unter welchen Umständen würde ich will mehr meiner Datenbank hinzufügen?

Danke!

War es hilfreich?

Lösung

Meine Bias (und dies ist vor allem eine Frage der persönlichen Vorliebe) ist, dass, wenn es um die Schaffung zusätzlicher Tabellen keinen zwingenden Nutzen ist, das Leben leichter mit einem einzigen Tabellen ist.

  • Es gibt keinen Performance-Vorteil Objekte in verschiedenen Tablespaces zu setzen. Es gibt einen alten Mythos, dass Trennung von Tabellen und Indizes einige Performance-Vorteile hätte. Es gibt einen möglichen Nutzen I / O über alle vorhandenen Spindeln zu verbreiten, aber das ist besser mit mehreren Datendateien in einer einzigen Tabelle dann mit mehrer Tablespaces durchgeführt, da Oracle eine Round-Robin-Zuteilung von Speicherbereichen in unterschiedlichen Datendateien nicht davon aus, dass Ihr SAN isn ‚t schon etwas zu tun, I / O zu glätten.
  • Wenn Sie große, statische Lookup / Geschichte Tabellen haben, so dass Sie mit nur bringen die kleineren Transaktionstabellen eine neue Kopie der Datenbank auf dem Client-Seite bringen könnte, wäre das ein Grund sein, mehrere Tablespaces zu betrachten. Aber es gibt nur sehr wenige Anwendungen, die diese Art von Setup haben. Wenn Sie alle 200 GB mitbringen werde, ist es egal, wie viele Tablespaces Sie haben.
  • In die gleiche Richtung, wenn Sie große schreibgeschützte Objekte haben, können sie in einem Read-Only Tabellen setzen erheblich die Zeit und Raum für Backups erforderlich verringern. aber Auch dies ist nicht besonders häufig in der Praxis außerhalb von Data Warehouse.
  • Wenn Ihre Anwendung ohne irgendeine Teilmenge von Objekten laufen konnte, kann es ein Vorteil für die Schaffung separater Tablespaces, so dass Sie ein offline nehmen und tun ein Tabellen-Ebene wiederherzustellen. obwohl wieder einige Anwendungen ohne einen Satz von objects-- laufen könnte, wenn Sie den Index Tabellen, zum Beispiel verlieren, die Anwendung wahrscheinlich ist genauso tot wie Sie hatten alles verloren.
  • Wenn Sie eine große Anzahl von leeren oder fast leer Tabellen und eine Reihe von sehr großen Tabellen separater Tablespaces mit unterschiedlichen Ausmaß Zuteilungsrichtlinien kann von einem Raumausnutzung Standpunkt preferrable sein. Dies geschieht gelegentlich mit gepackten Anwendungen, wo eine gegebene Installation eines relativ kleinen Prozentsatz der verfügbaren Tabellen verwenden und Sie nicht möchten, dass jeder der leeren Tische einen relativ großen Umfang zugewiesen hat. Mit automatischem Ausmaß Management in einer lokal verwalteten Tabellen, neigt dies keine großes Problem zu sein, kann es über sein, wenn Sie einheitliche Blöcke verwendet werden sollen.
  • Wenn verschiedene Objekte unterschiedliche Prioritäten für die Festplattenleistung haben, und Sie haben verschiedene Arten von Platten vorhanden, separate Tabellen erlauben es, verschiedene Objekte auf verschiedene Sätzen von Platten zu setzen. In einem Data Warehouse, zum Beispiel, können Sie ältere Daten auf langsamer, billige Platte und neuere Daten auf teurer Datenträger setzen. Dies gilt nicht viel passieren mit OLTP-Anwendungen.

Es sei denn, Ihre Anwendung in einer dieser besonderen Fällen fällt, ist der einzige Vorteil separaten Tablespaces, die zu einem DBA Sinn für Organisation ansprechen. Ich persönlich bin mehr als glücklich, die Lage sein, einen Tabellennamen ich jedes Mal zu vermeiden Angabe erstelle ein Objekt oder Zyklen verbringen Objekte aus den „falschen“ Tabellen zu bewegen, wenn sie zwangsläufig in den Standardtabellen versehentlich erstellt bekommen. Ich persönlich bin nicht allzu besorgt, wenn ein paar Dutzende MB Speicherplatz sind „verschwendet“, wenn sie lokal verwaltete Tablespaces mit automatischem Ausmaß Management über einen Hand-optimierte Satz von Tablespaces mit unterschiedlicher einheitlicher Extentgrößen verwenden. Auf der anderen Seite, ist in der Regel gute DBA sehr besorgt über die Dinge organisiert „einfach so“ so bin ich nicht militant Gegensatz, wenn ein DBA separaten Index und Daten-Tablespaces nur haben will, weil das zu jemandes Sinn für Ästhetik anspricht.

Andere Tipps

Siehe http://download.oracle.com /docs/cd/B10501_01/server.920/a96521/tspaces.htm

Siehe http://download.oracle.com /docs/cd/B28359_01/server.111/b28318/physical.htm

  

Sie können mehrere Tablespaces verwenden, um   Führen Sie die folgenden Aufgaben:

     

Steuerspeicherplatzzuordnung für   Datenbankdaten

     

bestimmten Raum Kontingente zuweisen für   Datenbankbenutzer

     

Steuer Verfügbarkeit von Daten, indem   einzelne Tablespaces online oder   offline

     

Führen Teilsicherung der Datenbank oder   Wiederherstellungsoperationen

     

Weisen Sie die Datenspeicherung auf verschiedenen Geräten   zur Verbesserung der Leistung

Ein Grund für die unterschiedliche Tablespaces würde einen Wunsch seine Tabelle Transport zu verwenden, um Daten zwischen Datenbanken verschieben. Wenn Sie eine begrenzte Menge von Daten, die Sie ohne zu exportieren verschieben möchten, und importieren dann ist Tabellen Transport eine gute Option, vor allem, wenn es für die Prüfung Gründen wichtig ist, dass die Daten exakt die gleiche physikalische Struktur als Quellsystem ( für die Leistungsanalyse der Arbeit, zum Beispiel).

ich stark mit Justin Caves Beurteilung nicht einverstanden ist. Eine Produktion DBA würde wahrscheinlich eine ganz andere Meinung hat.

Transportables Tablespaces verfügt für Teilmengen der Daten zwischen Datenbanken zu bewegen, ohne die gesamte Datenbank bewegen zu müssen.

Nur-Lese-Tablespaces so dass Sie nicht die gesamte Datenbank jede Woche sichern, die viele Stunden in Anspruch nehmen, und Sie können die Performance-Einbußen für die Höhe der Zeit nicht stehen, auch wenn Sie die Geschwindigkeit zu begrenzen.

Sicherung nur bestimmte Tablespaces zu festen Terminen aufgrund der schieren Größe, obwohl viele Orte haben einfach nicht Datenbanken diese groß. Aus demselben Grund wie Punkt oben.

Je nach Anwendung, lassen Sie uns sagen, es gibt Module, die unabhängig voneinander auf der Anwendungsseite funktionieren kann. Wenn sie jeweils ihre eigene Reihe von Tablespaces haben, können Sie ein apps Tablespaces offline nehmen ein Umschichten zu tun, ohne die anderen Module zu beeinflussen ... können sie als normal laufen.

als für die Trennung von Daten und Indizes: der traditionelle Grund war für die zwei auf verschiedene Scheiben setzen, so dass sie miteinander Leistung wiese nicht konkurrieren. Nicht so sehr ein Problem mit dem heutigen Speicherfähigkeiten, wie SANs, wo es ist alles wirklich der gleiche Speicherbereich, aber es ist noch die Überlegung, dass Sie gehen Anstoß auf Datei-Header-Level zu erreichen, auch mit lokal verwaltete Tablespaces, wenn Sie alle Ihre Objekte im selben Tabellenbereich haben, wo Sie die Indizes aus den Tabellen nicht locigally trennen können !! Selbst wenn Sie 20 Datendateien in einem Tabellenbereich erstellen, erhalten Sie nicht zu entscheiden, wo die Tabellen und Indizes gehen, und dann einem Tag merkt man Sie wegen der massiven Aktivität gegenüber auf dem Tisch große Konkurrenz auf Dateikopfebene haben, wo es Indizes ist geschehen in der gleichen Daten-Datei sein! In der Tat verschrottet, dass. wenn Sie noch nur eine ts bekommen, dann Sie wird ohne Zweifel Erfahrung Datei-Header Anstoß.

gibt es mehr Gründe für diese logische Trennung ist, und nein, es geht nicht um die Leistung für den größten Teil, es ist mehr über die Verwaltung in einer Produktionsumgebung.

S. Lott gab bereits eine gute Liste der allgemeinen Gründe, warum man, dass aufzuspalten auf mehrere Tablespaces wollen könnte.

Speziellere auf Ihre Situation ...

Ich würde mich fragen, ob es spezifische Gründe sind jetzt die Dinge zu ändern. Es ist keine leichte Aufgabe eine strukturelle Veränderung, so zu machen. Gibt es Performance-Probleme? Sind Sie mit gegen Speicherplatz Grenzen? Sie benötigen Raum Quoten zuweisen? Ist Ihre aktuelle Sicherungs- und Wiederherstellungsplan Ihre Bedürfnisse erfüllen?

Wenn Sie in der Zeit zurück gehen könnten und Redo Dinge von Anfang an Sie sicherlich sinnvoll planen möchten, um die Datenbank in verschiedene Tabellenbereiche unterteilen. Aber es lohnt sich jetzt?

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top