Zum Inhalt springen

Oracle-Begriffe


Znoob

Empfohlene Beiträge

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.

Link zu diesem Kommentar
Auf anderen Seiten teilen

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

Link zu diesem Kommentar
Auf anderen Seiten teilen

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.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung wiederherstellen

  Nur 75 Emojis sind erlaubt.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...