2016-11-23 2 views
0

Wir haben Live-Datenbank und Archivdatenbank in unserem System. Die täglichen Daten aus der Live-Datenbank werden in eine Archivdatenbank verschoben. Jeden Tag generierten wir rund 2 Millionen Daten in verschiedene Tabellen.Oracle Datenbank manuelle Tabelle Partitionierung

Da wir die Daten 10 Jahre lang aufbewahren müssen, haben wir eine weitere Oracle-Datenbank für Archivierungszwecke erstellt und die Daten alle 24 Uhr mit einem Batch-Prozess gepusht.

Da die Daten schnell wachsen, müssen wir die Daten in einer Tabelle in einer Archivdatenbank speichern. Da wir keine Orakelpartitionierungslizenz haben, haben wir seit 10 Jahren für jeden Monat eine Tabelle erstellt (insgesamt 120 Tabellen).

Unsere Archivdatenbank ist mehr schreiben und es wird nur wenige lesen. Hat die Aufsplittung der Tabelle in mehrere Tabellen irgendwelche Vorteile in Bezug auf Leistung/Speicher?

Grüße, Mayuran

+0

1 Tag = 2 Millionen Datensätze ... 1 Monat = 60 Millionen ... Ich denke, Ihre Lösung ist in Ordnung. Wenn Sie alle Daten in einer Tabelle ablegen, kann dies in Zukunft aufgrund der Datenmenge in derselben Tabelle ein Problem darstellen – are

Antwort

1

Ja, es gibt. Wenn Sie keine Partitionierungslizenz haben und ganze Daten in einer Tabelle speichern, können Sie sie nicht in mehrere Tablespaces aufteilen. Aber wenn Sie mehrere Tabellen erstellen, können Sie für jedes Jahr einen Tablespace erstellen. Dies ermöglicht es Ihnen, 10 Jahre alte Daten zu speichern, die weniger häufig mit schlecht gelesenen Daten abgefragt werden als neuere, die häufiger abgefragt werden.
Ein weiterer Hinweis ist die Größe der Indizes, wenn Sie eine haben. Natürlich brauchen Sie eine Logik, um zu entscheiden, welche Tabelle abgefragt werden soll (zum Beispiel Prozedur, die ref cursor basierend auf dem an proc übergebenen Monat zurückgibt), aber wenn Sie diese manuelle Entscheidung entweder auf Anwendung oder Datenbankseite anwenden, werden Ihre Indizes kleiner als eins.
Next Adventage, wenn ein Zeitraum mehr als 10 Jahre ist, fallen Sie einfach Tabelle suffixed _1015 (Ich würde Suffix mit Monat und Jahr empfehlen). Kein Löschen, Schrumpfen und so weiter.

Verwandte Themen