Szenario:
- zwei Datenbanken: DB_A und DB_Archive mit einer sehr großen Tabelle namens tableA.
- Jeden Tag werden Datensätze, die älter als 60 Tage sind, aus DB_A gelöscht und in DB_Archive verschoben. Dies geschieht hauptsächlich, um die Sache "getrennt" zu lassen, da tableA in DB_A stark nach Datensätzen der letzten 2 Monate abgefragt wird.
Ich möchte diesen Prozess loswerden, weil er langsam ist und viele Ressourcen verbraucht. Ich denke an die Implementierung der Tabellenpartitionierung auf DB_A mit einer Partitionsfunktion für eine Datumsspalte und Speichern aller Datensätze <2 Monate auf einer Partition und aller Datensätze> 2 Monate auf einer anderen Partition. Meine Fragen:
- Wird sich dieses Szenario so verhalten, als hätte ich zwei verschiedene Datenbanken? Wenn ich meine Tabelle A nach Datensätzen> getdate () - 30 abfrage, wird dann die Archivierungspartition gelesen?
- Ich musste wohl auch die Indizes partitionieren, oder?
- Wie gehe ich damit um, dass sich meine Partitionsfunktion morgen "ändert"? Ich meine, wenn ich die Funktion heute erstelle (2. Juli, der Bereich wird der 2. Mai sein, aber morgen der 3. Mai). Kann ich eine dynamische Partitionsfunktion erstellen?