Delphi-PRAXiS
Seite 2 von 3     12 3      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Massendaten täglich in eine DB speichern - Was macht Sinn? (https://www.delphipraxis.net/156275-massendaten-taeglich-eine-db-speichern-macht-sinn.html)

fkerber 25. Nov 2010 21:21

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

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


LG, Frederic

s.h.a.r.k 25. Nov 2010 21:22

AW: Massendaten täglich in eine DB speichern - Was macht Sinn?
 
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.

alzaimar 25. Nov 2010 21:29

AW: Massendaten täglich in eine DB speichern - Was macht Sinn?
 
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.

Piro 25. Nov 2010 21:32

AW: Massendaten täglich in eine DB speichern - Was macht Sinn?
 
Es werden sehr komplexe Abfragen auf die Daten ausgeführt. Deshalb die DB.

Die Idee mit dem Löschen der Tabelle und einfach wieder neu anlegen, klingt interessant aber mir ist noch nicht ganz klar wie.

Ich arbeite mit SQLConnection und TDataSet. Muss ich mir ein SQL Script hinlegen, welches mir die Tabelle anlegt oder was macht Sinn?
Habe da gerade irgendwie eine Denkblockade.

s.h.a.r.k 25. Nov 2010 21:40

AW: Massendaten täglich in eine DB speichern - Was macht Sinn?
 
Naja, du kannst doch via TQuery ein DROP TABLE und CREATE TABLE ausführen. Ich arbeite immer mit AnyDAC, daher kann ich dir nicht sagen, mit welcher Klasse/Komponente du SQL Queries auf der DB ausführen kannst.

Wobei die Idee von alzaimar nicht zu unterschätzen ist. Je weniger dein Programm machen muss, desto besser. Außer du brauchst spezielle Trigger oder dergleichen.

Piro 25. Nov 2010 21:51

AW: Massendaten täglich in eine DB speichern - Was macht Sinn?
 
@alzaimar: könntest du mir eventuell einen beispielhafteren Code geben und kurz erklären was der macht. Der Ansatz ist echt gut.

Bummi 25. Nov 2010 21:52

AW: Massendaten täglich in eine DB speichern - Was macht Sinn?
 
Wenn ich löschen im Zusammenhang mit Daten höre wird mir ganz schlecht.
Sammle doch einfach z.B:. mit Importdatum und wenn sich herausstellt die Datenbank unhandlich wird, exportiere alles was z.B. älter als 100 Tage ist in eine Archivdatenbank.

s.h.a.r.k 25. Nov 2010 21:55

AW: Massendaten täglich in eine DB speichern - Was macht Sinn?
 
Daten, die nicht mehr gebraucht werden, werden gelöscht -- ob da jemandem schlecht wird bei oder nicht :mrgreen: Es muss aber von vorn herein geklärt werden, dass die Daten wirklich zu 100% nicht mehr gebraucht werdenm, das ist schon klar :)

Hobby-Programmierer 25. Nov 2010 22:52

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

Zitat von Bummi (Beitrag 1064157)
Wenn ich löschen im Zusammenhang mit Daten höre wird mir ganz schlecht.
Sammle doch einfach z.B:. mit Importdatum und wenn sich herausstellt die Datenbank unhandlich wird, exportiere alles was z.B. älter als 100 Tage ist in eine Archivdatenbank.

:thumb: Google würde dich sofort einstellen :mrgreen:

Bummi 25. Nov 2010 22:56

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


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

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