Genau: leuchtende Kundenaugen :-)

Diese durfte ich kürzlich wieder sehen. Einer meiner Kunden behalf sich nämlich Jahre lang mit "schmutzigen" Workarrounds um das Feuern von Update-Triggern bei Massenupdates zu vermeiden.

Glücklicherweise ist es jedoch unter dem SQL Server möglich, Trigger bedarfsweise zu deaktiveren / aktivieren.

Für alle, die mit dem selben Problem kämpfen hier zur Referenz:

-- Trigger für Tabelle deaktiveren

ALTER TABLE [MeineTabelle] DISABLE TRIGGER ALL

 

-- Massenupdate durchführen, z. B.

-- update MeineTabelle set Preis = Preis * 1.5

 

-- Trigger wieder aktivieren

ALTER TABLE [MeineTabelle] ENABLE TRIGGER ALL


Kick it on dotnet-kicks.de
 
Thursday, September 11, 2008 7:01:41 PM (Mitteleuropäische Sommerzeit, UTC+02:00)
Hallo Andre,

das mit den triggern ist so aber nicht sauber.
Schau Dir mal die IO-Stats mit aktiviertem, de-aktiviertem und entfernten Trigger an.

Die IO-Last halbiert sich bei deaktiviertem Trigger und sinkt noch einmal, wenn der Trigger gar nicht vorhanden ist.
Eigentlich sollte man meinen, dass ein deaktivierter Trigger = nicht vorhandener Trigger ist. Dem ist aber nicht so.

Alte Weisheit bei M$: It's behaviour by design.

Ansonsten ein guter Blog

so long

Frank
Comments are closed.