2017-06-21 7 views
0

Oracle und SQL Server verfügen über diese Funktion, die es ermöglicht, eine Tabellenpartition in eine vorhandene Tabelle umzuschalten (z. B. here). Ich kann keine ähnliche Funktion für Sybase ASE finden.Partition in vorhandene Tabelle umschalten

Frage Teil A: Gibt es eine Möglichkeit, Partitionen in Sybase ASE zu wechseln?

Wenn die Antwort 'Nein' ist, bin ich mir nicht sicher, wie es weitergeht. Meine Situation ist, dass ich eine sehr große Tabelle habe, die durch Daten indiziert wird. Jetzt muss ich Daten für ein neues Datum T_n + 1 hinzufügen.

large table    new 
-------------------- ------ 
|T1|T2|T3| .... |Tn| + |Tn+1| 
-------------------- ------ 

Der Einsatz ist schnell genug, wenn ich den Index für die Tabelle zuerst fallen, aber die Erholung des Index viel Zeit in Anspruch nimmt. Es muss einen besseren Weg geben!

Frage Teil B: Was ist der schnellste Weg, um diese Daten für Tn + 1 in die große Tabelle hinzuzufügen.

Antwort

1

Antwort Teil A:

Während Sybase ASE Partition verschieben unterstützt und merge Partition, diese Befehle in einer einzigen Tabelle arbeiten, das heißt, Sybase ASE nicht die Bewegung von Partitionen zwischen unterstützen (unterschiedliche) Tabellen.

Antwort Teil B:

löschen und neu Indizes Unter der Annahme ist zu teuer (in Bezug auf die Zeit, in Bezug auf die Benutzer-Indizes benötigen andere Partitionen zuzugreifen), sind Sie nicht mit einer Menge von Optionen links die Einsätze andere als einige Grundlagen zu beschleunigen:

  • Bulk einfügen
  • die Anzahl der Transaktionen minimieren (dh reduzieren Anzahl, wie oft haben Sie in das Protokoll schreiben)
  • Deaktivieren von Triggern für die Sitzung, bei der die Daten eingefügt werden [offensichtlich müssen Sie entscheiden, wie mit einer im Trigger enthaltenen Must-Have-Logik verfahren werden soll]
  • Erhöhen Sie den Sperren-Eskalations-Schwellenwert (für die Tabelle), um sicherzustellen, dass Sie dies nicht tun zu einer exklusiven Sperre auf Tabellenebene eskalieren; nur von Interesse, wenn Sie es sich nicht leisten können, andere Benutzer mit einer Exklusivsperre auf Tabellenebene zu blockieren; Möglicherweise müssen Sie die Anzahl der Sperren Konfigurationseinstellung erhöhen; weniger Problem mit ASE 16.0+, da die Einfügung nur auf eine Sperre auf Partitionsebene eskalieren sollte
  • Wenn Sie aus dieser Tabelle replizieren, sollten Sie den Overhead des Replizierens der Einfügung oder das direkte Einfügen der Daten in das Replikat in Betracht ziehen Tabelle (n) [müsste offensichtlich die Replikation der Einfügungen in die Haupttabelle deaktivieren]
+0

ok, Pech dann. Danke trotzdem! – Beginner

Verwandte Themen