Znoob Geschrieben 11. Juli 2003 Teilen Geschrieben 11. Juli 2003 Moin zusammen.... ...ist jemand von euch in der Lage, mir einige Begriffe etwas genauer zu erklären? - Commit Points - Byte Collect - MergeStatement Die hat mir ein Oracle-Fachmann gegeben, um meine Anwendung performanter zu gestalten. Konnte mir aus Zeitgründen, aber nicht mehr dazu sagen. Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
DerMatze Geschrieben 11. Juli 2003 Teilen Geschrieben 11. Juli 2003 Im Einzelnen kann ich dir die Dinge nicht erklären, aber im Zweifel einfach mal im Oracle Technology Network stöbern. Hier gibt es z.B. Dokumentationen. Ansonsten google: Merge Statement Commit Points Matze, den DB derzeit nicht läuft *grml* Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Gnomeline Geschrieben 11. Juli 2003 Teilen Geschrieben 11. Juli 2003 Hallo Du, ich denke, ich habe einige Antworten auf Deine Fragen: 1. Commit Points: mit Commit Points ist meiner Meinung nach gemeint, dass Du bei einer grossen Datenmenge öfter einen Commit durchführst, erzwungen durch im Coding stehenden COMMIT. Dadurch gibst Du den Platz im Rollback-Segment wieder frei, erzwingst das Ende der Transaktion auf der Datenbank der bisher verarbeiteten Datenmenge und beginnst danach von Neuem. 2. BULK (!!!!) Collect: Ich denke, im Eifer des Gefechts hast Du das missverstanden?!? Ich kenne zumindest das BULK collect ... habe für diesen Zweck einen entsprchenden Link herausgesucht: www.ora.de/catalog/orplpr2/chapter/ch01.pdf 3. Merge Statements: Das sind Konstrukte, die ab der Oracle Version 9i möglich geworden sind. Folgendes Beispiel habe ich gefunden: >> Das MERGE-Statement Ab Version 9.0 bietet Oracle die Möglichkeit, Insert- und Update-Statements zu kombinieren. Werden beispielsweise ständig neue Daten in eine Hilfstabelle eingespielt, anhand derer Einträge in Tabellen zum Teil ergänzt (bei komplett neuen Datensätzen), zum Teil aber auch geändert werden müssen (bei bereits vorhandenen Datensätzen), so kann dies mit MERGE in einem Schritt erfolgen. Syntax: MERGE [hint] INTO [schema .] table [t_alias] USING [schema .] { table | view | subquery } [t_alias] ON ( condition ) WHEN MATCHED THEN UPDATE SET column = { expr | DEFAULT } [, column = { expr | DEFAULT }....] WHEN NOT MATCHED THEN INSERT ( column [, column...]) VALUES ( expr [, expr...] ); Beispiel: CREATE TABLE annsal(empno NUMBER, peryear NUMBER); INSERT INTO annsal (empno) SELECT empno FROM emp WHERE deptno = 10; SELECT * FROM annsal; EMPNO PERYEAR ---------- ---------- 7782 7839 7934 MERGE INTO annsal a USING emp e ON (a.empno = e.empno) WHEN MATCHED THEN UPDATE SET a.peryear = (e.sal *12 + NVL(e.comm,0)) WHEN NOT MATCHED THEN INSERT (a.empno, a.peryear) VALUES (e.empno, e.sal *12 + NVL(e.comm,0)); SELECT * FROM annsal; EMPNO PERYEAR ---------- ---------- 7782 29400 7839 60000 7934 15600 7902 36000 7900 11400 7521 15500 7654 16400 7566 35700 7844 18000 7499 19500 7698 34200 7788 36000 7369 9600 7876 13200 So, das war`s auf die Schnelle. Google ist unser Freund ;O))) Viel Spass und Erfolg damit. Gruss, Gnomeline Zitieren Link zu diesem Kommentar Auf anderen Seiten teilen Mehr Optionen zum Teilen...
Empfohlene Beiträge
Dein Kommentar
Du kannst jetzt schreiben und Dich später registrieren. Wenn Du ein Konto hast, melde Dich jetzt an, um unter Deinem Benutzernamen zu schreiben.