Oracle kopieren Sie die blob-Daten aus einer Tabelle in eine andere
Ich habe eine Tabelle (über 1.000.000 Zeilen und 60 GB Daten) mit einer blob-Spalte. Ich möchte zu bewegen, die meisten der Zeilen (nicht alle Spalten) der Tabelle zu einer anderen Tabelle. Ich habe versucht insert into X select from y
Befehl, aber es ist zu langsam.
Was ist der Schnellste Weg?
Habe ich Oracle 10 oder 11.
Möchten Sie vielleicht zu stellen, deine Frage auf dba.stackexchange.com .
Können Sie definieren, "zu langsam"? Wie lange dauert es, bis kopieren 60 GB Daten? Wie lange brauchen Sie, es zu nehmen? Was sind die wait-events? Hat 60 GB umfassen, die Größe der Tabelle segment? Oder das LOB-segment? Oder die kombinierte Größe der beiden Segmente?
es ist voll Nacht (18:00-08:00) zu kopieren ist es normall?
Können Sie definieren, "zu langsam"? Wie lange dauert es, bis kopieren 60 GB Daten? Wie lange brauchen Sie, es zu nehmen? Was sind die wait-events? Hat 60 GB umfassen, die Größe der Tabelle segment? Oder das LOB-segment? Oder die kombinierte Größe der beiden Segmente?
es ist voll Nacht (18:00-08:00) zu kopieren ist es normall?
InformationsquelleAutor ismail uzunok | 2011-08-23
Du musst angemeldet sein, um einen Kommentar abzugeben.
verwenden /*+ append */Hinweis auf pass-archive-log
wenn Sie den Hinweis oracle dosent erstellen Archives-Protokolle
InformationsquelleAutor formuser66
es zu spät ist, etwas zu deuten, aber es kann helfen, mit den oben genannten Lösungen, wenn Ihr neues(Ziel -) Tabelle-Einschränkungen oder-Indizes oder Trigger hat, dann versuchen zu entfernen/deaktivieren Sie Sie zuerst, dann laden Sie Ihre bulk-Daten und schließlich erstellen/aktivieren von constraints, Indizes und Triggern zurück und analysieren Sie Ihre Tabelle Indizes. diese zeitsparende Lösung ist nur dann sinnvoll, wenn Sie nur zu replizieren, bulk-Daten einmal. wie beim einfügen von neuen Datensätzen in Tabelle DBMS sorgt für die Einschränkungen, Kontrollen und Indizes reduziert die Geschwindigkeit
InformationsquelleAutor rykhan
Ok, wir wissen also nicht, Ihr system so ist es schwer zu sagen, Sie viel. Ihre Frage hängt wirklich von Ihrer Umgebung. Unabhängig davon, hier sind einige tests sowieso, um zu zeigen, Zeit und Ressourcen, die es braucht, um die Verwendung Ihrer Methode gegenüber einer anderen Methode:
Lassen Sie uns sagen, dass Ihre Methode ist die Methode 1 und die andere Methode ist Methode 2.
Ok, also kümmern wir uns um die beiden Methoden, die wir getestet, d.h.
denen wir eine autotrace-Antwort und
die wir nicht bekommen, eine autotrace.
Habe glücklicherweise lief auch sql_trace und ich nahm ein TKprof-stats.
Dies ist, was ich bekomme:
für "insert into t (select * from u);":
sowie für "create table t as (select * from u)" erhalten wir:
Also, was sagt uns das?
gut:
-Methode 2 dauerte etwa 65% insgesamt weniger Zeit als Methode 1 (ganze 5 Sekunden weniger für 1 Mio Zeilen)
-Methode 2 dauerte etwa 48% weniger CPU-Zeit insgesamt als Methode 1
-Etwas mehr Festplatte wurde analysiert mit Methode 2 Methode 1
-viel weniger Puffer abgerufen wurden, die für Methode 2 als für Methode 1
hoffe das hilft dir 🙂
InformationsquelleAutor Joel Slowik