Delphi-PRAXiS
Seite 2 von 2     12   

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Index bei großen Datenmengen, die ständig gelöscht werden? (https://www.delphipraxis.net/132740-index-bei-grossen-datenmengen-die-staendig-geloescht-werden.html)

DeddyH 18. Apr 2009 18:33

Re: Index bei großen Datenmengen, die ständig gelöscht werde
 
Das halte ich auch für die eleganteste Möglichkeit.

nahpets 18. Apr 2009 19:13

Re: Index bei großen Datenmengen, die ständig gelöscht werde
 
Hallo,

und wenn Du als ID eine GUID nimmst, solltest Du eigentlich nie zu einem Überlauf kommen.

Reinhard Kern 19. Apr 2009 13:49

Re: Index bei großen Datenmengen, die ständig gelöscht werde
 
Hallo,

soweit ich das auf den ersten Blick sehen kann, verwendest du den Primärindex ja nirgends zum Zugriff. Du kannst also ruhig mal die Datenbank reindizieren, also primär die Records von 1 an neu numerieren. So alle hundert Jahre mal.

Gruss Reinhard

WoGe 19. Apr 2009 14:18

Re: Index bei großen Datenmengen, die ständig gelöscht werde
 
Zitat:

Zitat von daywalker299
1. Alle Softwareeinträges des Computers (sid = id) aus der DB lesen
2. Gegen die aktuell ermittelte Software prüfen und Flags setzen.
3. Anhand des Flags den Softwareeintrag hinzufügen, editieren oder löschen

Das geht eventuell einfacher
Tabelle um Timestampfeld LetzteAenderung erweitern
Über Trigger oder Sp bei Insert oder Update dieses automatisch befüllen lassen
Alle Daten eines Computers eintragen (InsertOrUpdate)
Alle alten löschen

Gruss
wo

alzaimar 19. Apr 2009 15:28

Re: Index bei großen Datenmengen, die ständig gelöscht werde
 
Die beste Möglichkeit ist naturgemäß die, die keine Änderungen an der Tabelle vornimmt, wenn es nichts zu ändern gibt, wenn also keine Änderungen an der Softwareliste vorgenommen wurden.

Gegeben sei eine Liste S, die alle derzeit auf dem Computer C installierten Programme enthält. Diese Liste wird vom Computer gepflegt und soll nun gegen eine Datenbank geprüft werden. Sei s (Klein-S) die Liste der in der Datenbank gespeicherten Programme.

1. Für alle Elemente e in s: Wenn e in S enthalten ist, entferne e aus S, sonst entferne e aus s. Dieser Schritt entfernt also alle nicht mehr vorhandenen Programme aus der Datenbank.
2. Füge nun die verbleibenen Elemente E aus S in s ein. Das sind die neu hinzugekommenen Programme.

Wenn S und s vorher schon identisch waren, passiert gar nichts, da Schritt (1) dann alle Elemente aus S entfernt.

Piro 24. Apr 2009 10:28

Re: Index bei großen Datenmengen, die ständig gelöscht werde
 
Hi Danke für die rege Anteilnahme.

Ich habe jetzt folgendes gemacht.

1. Auslesen der Software
2. Zeitstempel festlegen für die Aktion
3. Überprüfung, ob der Softwareeintrag in der DB ist?
3.1. Wenn ja, ändern und den Zeitstempel setzen
3.2. Wenn nein, hinzufügen und den Zeitstempel setzen
5. Am Schluß, alle Einträge löschen, die nicht den Zeitstempel haben

Gruß und vielen Dank nochmal.


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:55 Uhr.
Seite 2 von 2     12   

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz