thejoker2305
Goto Top

Postgre SQL Trigger oder nachgelagertes separates Skript?

Hallo zusammen,

wir betreiben einen PostgreSQL Server mit einer firmeninternen Software (DWH).

Ist es performanter das Staging der Daten über einen Trigger oder ein separates SQL-Skript erfolgen zu lassen?

Vorteil am Trigger wäre natürlich, dass das Staging unmittelbar nach der Befüllung der Rohdatentabelle erfolgen kann.

Bestehen ansonsten darüberhinaus deutliche Performancevorteile bei der Verwendung eines Triggers gegenüber der Skript-Methode?

Danke vorab

Gruß Thejoker2305

Content-ID: 318083

Url: https://administrator.de/contentid/318083

Ausgedruckt am: 21.11.2024 um 23:11 Uhr

atze187
atze187 17.10.2016 um 13:07:40 Uhr
Goto Top
Das lässt sich ohne Kenntnis von der Struktur und den Aktualisierungsintervallen der Daten nicht pauschal sagen. Im Callcenter mussten wir damals für das Monitoring mehrere 1000 Datensätze pro Minuten abarbeiten und haben das mit externen Jobs gemacht die alle 10 Sekunden gemacht. Da wären Trigger tödlich gewesen.
TheJoker2305
TheJoker2305 17.10.2016 um 13:14:51 Uhr
Goto Top
Hallo atze187,

Callcenter gutes Stichwort.

Es geht um Intradaydaten mit wenigen 100 Rohdaten-Datensätzen (10 bis 20 Felder) pro Tag.
Aktuell liegt der Aktualisierungsintervall bei 10 Minuten, soll aber auf 30 minuten erhöht werden.

Trigger sind doch je Zeile und auch je SQL Statement ausführbar.

Die Aufgabe des Triggers wäre die reine Summierung und Gruppierung auf Tagesbasis (aktueller Tag).
Also kein Hexenwerk. Sind Trigger im allgemeinen schneller oder langsamer als ein nachgelagertes Skript?

Gruß
thejoker2305
atze187
Lösung atze187 17.10.2016 um 13:45:40 Uhr
Goto Top
Ich würde in deinem Fall die Logik als Stored Procedure implementieren. Dann kannst du das erst mal aus einem Trigger heraus nutzen und später ggf. auf ein externes Skript umsteigen falls die Performance nicht reicht. Den Trigger würde ich dann pro Statement und nicht pro Zeile ausführen lassen.
TheJoker2305
TheJoker2305 17.10.2016 um 13:47:38 Uhr
Goto Top
Vielen Dank, werde das mal durchspielen.