Verändern Sie mehr als eine Spalte in einer Tabelle in oracle
Werden die zwei scripts unten (zum ändern einer Tabelle) diff machen..??
Skript 1 :
alter table ACNT_MGR_HSTRY add DM_BTNUMBER DATA_TYPE ;
alter table ACNT_MGR_HSTRY add DM_BTID DATA_TYPE ;
alter table ACNT_MGR_HSTRY add DM_USERID DATA_TYPE ;
alter table ACNT_MGR_HSTRY add DM_WSID DATA_TYPE ;
Skript 2 :
alter table ACNT_MGR_HSTRY
add
(
DM_BTNUMBER DATA_TYPE,
DM_BTID DATA_TYPE,
DM_USERID DATA_TYPE,
DM_WSID DATA_TYPE
);
update macht eine diff..???
update OPERATIONAL_UNIT
set ( BANK_ID=
ENTY_CODE_ID=
TIME_ZONE=
DM_BTNUMBER=
DM_BTID=
DM_USERID=
DM_WSID=
);
-----------
update OPERATIONAL_UNIT set BANK_ID=;
update OPERATIONAL_UNIT set ENTY_CODE_ID=;
update OPERATIONAL_UNIT set TIME_ZONE=;
update OPERATIONAL_UNIT set DM_BTNUMBER=;
update OPERATIONAL_UNIT set DM_BTID=;
update OPERATIONAL_UNIT set DM_USERID=;
update OPERATIONAL_UNIT set DM_WSID=;
Sie konnten angeben, was für einen Unterschied Sie brauchen, um wissen. Werden Sie dasselbe tun? Ich weiß nicht, oracle, aber ich würde sagen, ja. Welches ist schneller? Welche ist die richtige? Keine Ahnung.
InformationsquelleAutor sridevi | 2011-03-30
Du musst angemeldet sein, um einen Kommentar abzugeben.
Die beiden Beispiele gleichwertig sind.
Habe ich nur einmal benutzt Aussagen, wie Sie im ersten Beispiel
; ich weiß nicht, ob es möglich ist, dass Sie nicht bekommen, wie gut eine Fehler-Nachricht, wenn die zweite Beispiel-format, die im Falle eines Fehlers.. Gary Myers bestätigt meine überzeugung:Meistens sind die gleichen. Wenn, zum Beispiel, DM_WSID bereits existiert, dann werden die zugehörigen Anweisung schlägt fehl. In Skript 1, würden Sie bekommen drei Spalten Hinzugefügt. In Skript 2 Sie wollte nicht. Wenn Sie DDL-Trigger oder eine PRÜFUNG, dann werden Sie gefeuert mehrfach für Fall 1. Skript 1 verpflichten sich mehrere Male und KÖNNEN warten, für eine exklusive Tabellensperre mehrmals.
Sind Sie besorgt über die Leistung, die für DDL-Anweisungen?! Ich denke, es gibt Bereiche, die mehr verdient Ihre Aufmerksamkeit auf die Verbesserung der performance.
Ich werde mit einer einzigen sql-Skript ändern, um >50 Tabellen hinzufügen von durchschnittlich 15 Spalten für jede Tabelle...also ich wollte wissen, welche Methode b fyn..!!! Vielen Dank für Eure Hilfe..!!
Hinzufügen von Spalten ist ziemlich schnell; es ist, data manipulation, die möglicherweise stattfinden müssen, danach, dass Sie Aussehen würde, um die Leistung zu optimieren, während Sie sehr vorsichtig sein, über die QA diese änderungen.
InformationsquelleAutor OMG Ponies
Skript 2 wird im Allgemeinen viel besser als script 1. Gruppierung ähnlicher änderungen und durchführen Sie alle auf einmal, ist fast immer schneller. Aber die eigentliche Frage ist, ist der Unterschied signifikant?
Basierend auf Ihren Kommentar, über 50 Tabellen mit 15 Spalten je, ich würde sagen, der Unterschied ist zumindest etwas von Bedeutung, und möglicherweise sehr bedeutende, je nach Konfiguration.
Gerade gestern habe ich aus fast der gleichen ändern, modifizieren, etwa 30 Spalten für über 100 Tabellen. Ausgeführt wird das Skript lokal mit SQL*Plus, der Zeit verringerte sich von 2 Minuten auf 4 Sekunden. Die meiste Zeit war wahrscheinlich verbrachte die Kommunikation zwischen SQL*Plus mit der Datenbank. Wenn Sie eine SQL*Plus-Skript, das ausgeführt werden muss, aus der Ferne diejenigen, die Rundreisen machen könnte Ihr Skript quälend langsam.
Myers:wird ein diff-update...siehe bitte die Frage zum Beispiel update-stmts...jede Hilfe wird sehr geschätzt..
Das einstellen der Spalten in einem statement spart eine Menge Ressourcen. Die grundlegenden Schritte, um diese Anweisungen auszuführen sind: 1) send-Anweisung zur Datenbank, 2) parse-Anweisung, 3) Lesen-block(s), 4) ändern von Daten, 5) schreiben von block(s), 6) senden das Ergebnis an den client. Mit mehreren updates, die Sie haben zu tun, jeder Schritt 7-mal. Mit einem kombinierten update nur die Billig Schritt #4 erfolgt 7 mal. Wenn Sie eine Menge von Daten oder das Netzwerk langsam ist der Unterschied kann riesig sein. Genauso gut könnte man immer Dinge tun, die effizienter Weg, dann werden Sie nicht haben, um sorgen über es später.
InformationsquelleAutor Jon Heller
Eine weitere Art, wie wir Ändern können, unsere Spalten, indem man jede Spalte, die wir brauchen, sich zu verändern .
Hier Das Beispiel :-
InformationsquelleAutor burhanuddin abbas