Hallo,
ich habe in meiner Datenbank einen Insert-Trigger, der mir mein ganzes Projekt langsam macht. Der Trigger wird sehr häufig aufgerufen.
Der Trigger:
Die Tabelle CHANGECOUNTER:
Wenn ich die Zeile mit dem Insert into Changecounter weg mache wird die ganze Sache schon erheblich schneller. Aber leider benötige ich diese. Die Tabelle CHANGECOUNTER bekommt auch ganz schnell sehr viele Datensätze.
Hat jemand eine Idee wie ich die ganze Sache optimieren könnte?
Bei MS-SQL-Servern kann man mit "SET NOCOUNT ON" die performance von Triggern verbessern, gibt es so etwas vielleicht auch in Firebird?
Vielen Dank
Boris
ich habe in meiner Datenbank einen Insert-Trigger, der mir mein ganzes Projekt langsam macht. Der Trigger wird sehr häufig aufgerufen.
Der Trigger:
Code:
BEGIN Batchvalue = 1; SELECT MAX("CHANGECOUNT") FROM "CHANGECOUNTER" into :Batchvalue; Batchvalue = Batchvalue + 1; INSERT INTO "CHANGECOUNTER" ("CHANGEDATE", "CHANGECOUNT") VALUES (CURRENT_TIMESTAMP, :Batchvalue); NEW.SFLASTEDITDATE = current_timestamp; NEW."BatchAnchor" = :Batchvalue; END
Code:
CREATE TABLE CHANGECOUNTER ( CHANGEDATE TIMESTAMP, CHANGECOUNT BIGINT ); CREATE INDEX i_CHANGECOUNTER ON CHANGECOUNTER(CHANGECOUNT);
Hat jemand eine Idee wie ich die ganze Sache optimieren könnte?
Bei MS-SQL-Servern kann man mit "SET NOCOUNT ON" die performance von Triggern verbessern, gibt es so etwas vielleicht auch in Firebird?
Vielen Dank
Boris
Comment