AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Datenlogger mit MSSQL und Index-Fragmentierung
Thema durchsuchen
Ansicht
Themen-Optionen

Datenlogger mit MSSQL und Index-Fragmentierung

Ein Thema von BigAl · begonnen am 16. Jul 2025 · letzter Beitrag vom 20. Jul 2025
 
Delphi.Narium

Registriert seit: 27. Nov 2017
2.582 Beiträge
 
Delphi 7 Professional
 
#20

AW: Datenlogger mit MSSQL und Index-Fragmentierung

  Alt Gestern, 08:42
Ok, wenn theoretisch doppelte Datensätze entstehen können, weil durch Zeitumstellung, Uhrenkorrektur, ... eine Zeit mehrfach vorkommen kann, entfällt das Update auf den ältesten Datensatz über den Datums-/Zeitwert, da dieser ja mehrfach vorhanden sein könnte.

Dann könnte man für die ID eine Sequenz nehmen und die beim Update immer auf den nächsten Wert der Sequenz setzen. Damit wäre es immernoch möglich das Update (wie oben skizziert) auf den Satz mit der ältesten (kleinsten) ID zu machen, das Berechnen der ID des zu aktuallisierenden Satzes kann dann trotzdem entfallen und die korrekte Sortierung der Datensätze bleibt beim Order By ID bestehen, auch wenn Zeiten mehrfach vorhanden sein sollten.

Ungefähr sowas:
SQL-Code:
CREATE SEQUENCE Seq_LogTableID AS BIGINT START WITH 1 INCREMENT BY 1;

CREATE OR ALTER TRIGGER trg_LogTableID ON LogTable AFTER UPDATE AS
BEGIN
  SET NOCOUNT ON;
  -- Jede vom UPDATE betroffene Zeile bekommt jetzt eine neue ID, durch neuen Sequencewert.
  UPDATE LogTable SET LogTable.ID = NEXT VALUE FOR Seq_LogTableID
  FROM LogTable
  INNER JOIN inserted ON LogTable.ID = inserted.ID;
END
  Mit Zitat antworten Zitat
 

 

Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 21:53 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz