AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Massendaten täglich in eine DB speichern - Was macht Sinn?
Thema durchsuchen
Ansicht
Themen-Optionen

Massendaten täglich in eine DB speichern - Was macht Sinn?

Ein Thema von Piro · begonnen am 25. Nov 2010 · letzter Beitrag vom 26. Nov 2010
Antwort Antwort
Seite 1 von 2  1 2      
Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#1

AW: Massendaten täglich in eine DB speichern - Was macht Sinn?

  Alt 25. Nov 2010, 21:04
Das war meine erste Idee, die mir so spontan einfiel.

Ja, ich wollte erst alle Daten löschen und dann die neuen Daten speichern.

Der Primärschlüssel ist der eindeutige Index des Datensatzes, der hochgezählt wird. Gibt es in jeder DB in jeder Tabelle, um zwischen 2 Tabellen zu referenzieren.

Gruß
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#2

AW: Massendaten täglich in eine DB speichern - Was macht Sinn?

  Alt 25. Nov 2010, 21:09
Hi,

wenn ich dein Problem richtig verstehe (ID wird zu groß für den Wertebereich), dann könntest du nach dem Löschen doch einfach den Value wieder auf 1 setzen.

Für mySQL wäre das die Syntax:
ALTER TABLE 'tablename' AUTO_INCREMENT =1
LG, Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#3

AW: Massendaten täglich in eine DB speichern - Was macht Sinn?

  Alt 25. Nov 2010, 21:15
Aber es ist schon etwas komisch das die ID überläuft, oder?
Selbst bei 100.000 neuen Einträgen pro Tag sollte es um die 100 Jahre dauern, bis ein 32bit-Ganzzahlwert überläuft.
Intellekt ist das Verstehen von Wissen. Verstehen ist der wahre Pfad zu Einsicht. Einsicht ist der Schlüssel zu allem.
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.851 Beiträge
 
Delphi 11 Alexandria
 
#4

AW: Massendaten täglich in eine DB speichern - Was macht Sinn?

  Alt 25. Nov 2010, 21:16
Und wenn man einen BIGINT nimmt, hat man noch länger Ruhe.
Markus Kinzler
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#5

AW: Massendaten täglich in eine DB speichern - Was macht Sinn?

  Alt 25. Nov 2010, 21:17
mkinzler: Wie lange hast du denn vor zu leben!?
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#6

AW: Massendaten täglich in eine DB speichern - Was macht Sinn?

  Alt 25. Nov 2010, 21:11
Mal ganz blöd gefragt: Was für einen Typ hast du denn für den Primärschlüssel, dass der sehr schnell explodieren sollte? Nehme ich allein mal den Delphi Integer (und hier nicht mal unsigned) dann hast du circa 21474 Tag Zeit. Reicht dir das nicht? Dann nimm einfach unsigned int, dann hast immer das doppelte. Und in Datenbanken gibts mit Sicherheit auch ein Pendant zu Int64. Also Löschen brauchst du rein gar nichts.

Und DBMS sind zudem dafür ausgelegt eine derart große Anzahl an Daten zu halten, zumal du ja kein MySQL oder SQLite hast. MS SQL ist ein ausgewachsenes SQL-System.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
Benutzerbild von Piro
Piro

Registriert seit: 14. Jul 2003
Ort: Flintbek
810 Beiträge
 
Delphi XE2 Professional
 
#7

AW: Massendaten täglich in eine DB speichern - Was macht Sinn?

  Alt 25. Nov 2010, 21:19
Danke für die Erklärungen. War dann wohl etwas ängstlich mit meiner ID. Will nur sicherstellen, dass es auch noch nach mir läuft.

Ich bin nur kein Freund von Daten rein -> raus -> rein -> und so weiter.

Ich glaube, ich werde meine 2 Idee umsetzen. Neue Daten aktualisieren bestehende Daten und nicht aktuelle Daten werden gelöscht. Das sollte das Beste sein, oder?

Mich würde mal interessieren, welche Logik ihr so verwendet für solche Aufgaben.

Vielen Dank im Voraus für die guten Antworten.
  Mit Zitat antworten Zitat
Benutzerbild von fkerber
fkerber
(CodeLib-Manager)

Registriert seit: 9. Jul 2003
Ort: Ensdorf
6.723 Beiträge
 
Delphi XE Professional
 
#8

AW: Massendaten täglich in eine DB speichern - Was macht Sinn?

  Alt 25. Nov 2010, 21:21
Hi,

aber der Abgleich mit Daten, die eh entsorgt werden sollte doch das Ganze massiv langsamer machen, oder?


LG, Frederic
Frederic Kerber
  Mit Zitat antworten Zitat
Benutzerbild von s.h.a.r.k
s.h.a.r.k

Registriert seit: 26. Mai 2004
3.159 Beiträge
 
#9

AW: Massendaten täglich in eine DB speichern - Was macht Sinn?

  Alt 25. Nov 2010, 21:22
Es kommt halt drauf an, ob du deine alten Daten später noch evtl. brauchst -- für andere Abteilungen/(Jahres-)Statistiken etc. Wenn du die Daten wirklich nur einmal mit deinem Programm anfasst, dann brauchst nicht mal eine DB, außer du lässt komplexe Abfragen drauf laufen. Dann wird es wohl schneller sein die kurz in eine DB zu klopfen.

Und zum Theme löschen: Warum wirfst nicht die komplette Table weg und erzeugst danach eine neue? Geht doch schneller als löschen und PK neu setzen.

-- EDIT
@fkerber: nun ja, es sei denn man muss komplexe Suchalgos in sein Programm einbauen, die eine DB ja schon effizient erschlägt.
»Remember, the future maintainer is the person you should be writing code for, not the compiler.« (Nick Hodges)
  Mit Zitat antworten Zitat
alzaimar
(Moderator)

Registriert seit: 6. Mai 2005
Ort: Berlin
4.956 Beiträge
 
Delphi 2007 Enterprise
 
#10

AW: Massendaten täglich in eine DB speichern - Was macht Sinn?

  Alt 25. Nov 2010, 21:29
also ich würde folgende zwei Zeilen ausführen:

Code:
select * into Tabelle_<HeutigesDatum> from MasterTabelle where 1=0
Create Index IX_<HeutigesDatum> on bla bla feld xy usw.
bulk insert into Tabelle_<HeutigesDatum> from cSV_Datei
Die genaue Syntax ergibt sich aus Google. Ich habe genau das gemacht und das zieht mir eine 20MB CSV-Datei in ein paar Sekunden in eine MSSQL-DB.
Nun hast Du täglich eine eigene Tabelle mit Index und allem Drum und dran.
Ob Du die alten Daten löschst oder z.B .die letzten X Tage noch aufhebst, bleibt Dir überlassen und hat nix mit o.g. Import zu tun.
"Wenn ist das Nunstruck git und Slotermeyer? Ja! Beiherhund das Oder die Flipperwaldt gersput!"
(Monty Python "Joke Warefare")
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


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 03:59 Uhr.
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