Gibt es eine Möglichkeit zu tun, eine INSERT INTO SELECT-Anweisung unter Angabe einer commit-Zähler?

DB: Oracle 11g

Gibt es eine Möglichkeit, etwas zu tun, wie die folgenden:

INSERT INTO T1
    (V1, V2)
COMMIT EVERY X
AS
SELECT (V1, V2) FROM T2;

Ich weiß wie eine Schleife durch den cursor, aber ich bin auf der Suche nach etwas mehr gestrafft.

PL/SQL ist in Ordnung, aber keine Schleifen.

Mithilfe einer SQL-Tipp ist auch gut.

Wenn das nur etwas, dass oracle nicht umgehen kann, der Traurigkeit ergibt sich (Meistens bin ich nur neugierig, da habe ich einen anderen Ansatz bereits funktioniert).

HINWEIS: Die Anwendung enthält Hunderte von Milliarden von Datensätzen. Millionen sind erstellt pro Tag. INSERT INTO SELECT funktioniert nicht, die auf solchen großen Datensätzen. Vor allem, wenn es gleich große Gruppen parallel laufen.

  • Wie Sie sehen können aus den Antworten, es ist allgemein Konsens, nicht über dazwischenliegende commits, die ich Stimme mit. Ich bin neugierig, aber, warum Sie wollen, um ein Zwischenprodukt zu Begehen? Was ist das?
  • Können Sie erklären, was "funktioniert nicht"? Es ist relativ Häufig in data warehouses zu tun, die große Zahl von INSERT ... SELECT Aussagen in verschiedenen Sitzungen während gleichzeitig lädt.
  • In der Antwort auf die Frage, warum ich das wollen: Die Anwendung hat Hunderte von Milliarden von Datensätzen. Millionen pro Tag an Daten. INSERT INTO SELECT funktioniert nicht, die auf solchen großen Datensätzen. Vor allem, wenn es gleich große Gruppen parallel laufen. Auch Cursor und FORALL sind sperrig und hässlich. Aber meistens bin ich einfach nur neugierig.
  • Hinweis: Es werden extrem große Mengen von Daten. Nicht eine große Anzahl von kleinen Mengen von Daten.
InformationsquelleAutor ScrappyDev | 2012-04-16
Schreibe einen Kommentar