Änderungsbit umsetzen

03/04/2009 - 09:30 von Lutz Uhlmann | Report spam
Hallo NG!

Hab mal wieder ne kleine Frage die unter anderem mit nem Trigger zu tun hat.

Ich habe eine Termin-Tabelle aus der ich in bestimmten Intervallen alle
geànderten Termine in ein anderes System übertragen. Da es sich dabei um
mehrere 10.000 Termine handeln kann und die ganze Verarbeitung relativ
aufwendig ist wollte ich die Last reduzieren indem ich nur wirklich
geànderte Termine bearbeite.

Wie würdet ihr so etwas lösen?
Ich habe mir dazu überlegt, eine zusàtzliche Spalte anzulegen, welche die
Funktion eines Änderungsbits hat. Inserts und Updates lösen einen Trigger
aus, welcher den Wert auf 1 setzt.
Dann möchte ich beim nàchsten Durchlauf nur Datensàtze mit 1 abarbeiten und
anschließend den Wert wieder auf 0 zurücksetzen.

Dazu ein paar Fragen.
Das setzen einer Spalte auf 1 im AFTER-Trigger sollte doch im normalen
Betrieb keine spürbaren Auswirkungen auf die Leistung haben, oder?
Bei ungewollten Änderungen des Bits auf 0 sollte der Trigger ja immer wieder
für eine 1 sorgen, aber wie kann ich verhindern, daß beim Zurücksetzen nach
der Bearbeitung der Trigger wieder anspringt und die 0-Werte wieder auf 1
àndert?

Lutz
 

Lesen sie die antworten

#1 Christa Kurschat
03/04/2009 - 10:36 | Warnen spam
Hallo Lutz,

Lutz Uhlmann schrieb:


Wie würdet ihr so etwas lösen?
Ich habe mir dazu überlegt, eine zusàtzliche Spalte anzulegen,
welche die Funktion eines Änderungsbits hat. Inserts und
Updates lösen einen Trigger aus, welcher den Wert auf 1 setzt.
Dann möchte ich beim nàchsten Durchlauf nur Datensàtze mit 1
abarbeiten und anschließend den Wert wieder auf 0 zurücksetzen.



Könnte man so machen.
Ich schreibe das Änderungskz zwar lieber selbst, aber man könnte es auch per
Trigger machen, wie Du vorhast.
Ich denke, die Last ist nicht so hoch.


Dazu ein paar Fragen.
Das setzen einer Spalte auf 1 im AFTER-Trigger sollte doch im
normalen Betrieb keine spürbaren Auswirkungen auf die Leistung
haben, oder? Bei ungewollten Änderungen des Bits auf 0 sollte
der Trigger ja immer wieder für eine 1 sorgen, aber wie kann
ich verhindern, daß beim Zurücksetzen nach der Bearbeitung der
Trigger wieder anspringt und die 0-Werte wieder auf 1 àndert?



Dazu kannst Du den Trigger deaktiveren udn nach dem Zurücksetzten wieder
aktivieren.
Die Aktion sollte in einer Zeit laufen, wo definitiv keine anderen
Änderungen gemacht werden.

Gruß
Christa
Access-FAQ: http://www.donkarl.com
SQL-Server-FAQ: www.sqlfaq.de
InsideSql: www.insidesql.org

Ähnliche fragen