![]() |
AW: Tabellen für viele kleine Datensätze optimieren
Weil das Progy sonst nach n paar Monaten verdamt wird und nach einen Jahr nicht mehr läuft ...
Grüssle DSP |
AW: Tabellen für viele kleine Datensätze optimieren
Gerade wenn man sich auf bestehende/bekannte Strukturen bezieht, wird es nicht schnell Probleme geben.
Es ist ja nicht so, daß man unbedingt jedes mögliche Bit einsparen muß. Lieber ein paar Byte mehr und dafür sind die Daten wenigstens gut verarbeitbar. Natürlich kann man im Spezialfall auch mal alles extrem auf größe optimiert in binären Rinspeichern ablegen, aber wozu alles neu erfinden, wenn man sich auch eine der vielen vorhandenen und voallem leicht anpassbaren und erweiterbaren Lösungen auswählen kann. |
AW: Tabellen für viele kleine Datensätze optimieren
Zitat:
|
AW: Tabellen für viele kleine Datensätze optimieren
Wüsste nicht was da unbekannte Strukturen sind? Es ist einfach ein Compound Key, das wars. Alle Daten liegen in der Datenbank und können Problemlos gelesen werden. Und dass man die Zeit normalisieren muss, liegt auf der Hand, warum dann nicht die 650 Stationen auf einen Zeitstempel vereinheitlichen? Wenn details nötig sind, muss sowieso nachgelesen werden.
Auch hier mit dem rollierenden und wartungsarmen verfahren, dürften mehrere Gigs im Jahr überschritten werden und es ist nur eine Frage der Zeit, mis da noch weitere Stationen dazu kommen und ehrlich, wenn schon dieser Detailgrad gefordert wirs, wenn interessierts in n paar Jahren noch welche Station n paar Jahre zuvor einen höheren value hatte als die andere Station n paar millisekunden davor? Grüssle DSP |
AW: Tabellen für viele kleine Datensätze optimieren
Zitat:
Grüssle DSP |
AW: Tabellen für viele kleine Datensätze optimieren
Zitat:
Dessenungeachtet könnte es ja sein, das z.B. die Messdaten in einem Atomkraftwerk(darum geht es hier nicht, aber egal) oder in einer Fabrik über mehrere Jahre aufbewahrt werden müssen und ich möchte bitte nicht erst Stundenlang im Archiv irgendwelche Zipdateien entpacken, um mir die Aufzeichnungen anzuschauen. Muss ich auch nicht, ich habe ja mein RDBMS mit meinen Archivdaten: Kurz gemounted, Auswertung gestartet, fertig. Zitat:
Zitat:
So, nun komm wieder runter. |
AW: Tabellen für viele kleine Datensätze optimieren
Zitat:
Die uniqueness kannst Du separat per constraint definieren. NOrmalerweise tuen RDBMS einem den "Gefallen" abhängig vom Constraint direkt auch einen Index zu bauen, aber das kann man unterbinden, löschen, ändern. Zitat:
Ausnahme wäre bspw. wenn ein Abfrage Paramter besser "innerhalb eines Views" aufgehoben ist, weil er dort eine größere Selektivität entfaltet (stärkere Datenreduktion bringt, Folgekosten spart, ..) Zitat:
Das kann man auch gezielt je Tag oder so manuell in eine eigene Tabelle kippen. Falls dort Indizes definiert sind, dann eben die Indizes disablen und nachher wieder aktualisieren, ist etwas schneller. |
AW: Tabellen für viele kleine Datensätze optimieren
Zitat:
Zitat:
Und eigentlich sind alle Abfragen, die mir einfallen, derart, dass sie vom Index nicht profitieren. Auch wenn man z.B. den Durchschnitts-/Max-/Minwert in einem Zeitabschnitt bestimmen will. Das RDBMS findet über den Index zwar recht schnell den ersten Datensatz im Zeitabschnitt, aber muss dann doch alle Datensätze in diesem Abschnitt durchscannen, was den Großteil der Zeit ausmachen wird. Und durch den Index auf der Zeitspalte (den man natürlich trotzdem braucht) wird natürlich auch das Einfügen mit der Zeit langsamer, zwar „nur“ logarithmisch zur Anzahl der Datensätze, aber bei sekündlichem Logging über Jahre hinweg ist das vielleicht auch nicht zu unterschätzen. Ich finde du übertreibst auch was den Aufwand von Textdateien angeht. Das ist doch wirklich die simpleste Form, Daten zu speichern und zu lesen überhaupt. Ich finde auch nicht, dass man damit das Rad neu erfindet, ganz im Gegenteil. |
AW: Tabellen für viele kleine Datensätze optimieren
Zitat:
Bei SQL-Server kann man auch einzelne Felder in den Index mit aufnehmen, sozusagen Huckepack, dann spart man sich den Zugriff auf den Datensatz komplett. Geht das hier auch? Ok, der Index ist dann so groß wie die Daten, aber WTF. Zitat:
Zitat:
Man macht meistens von einem relativ kleinen Zeitraum eine Auswertung und da bringt der Index schon eine ganze Menge. Weiterhin gibt es noch andere Index-Arten, die eine Aggregierung drastisch beschleunigen, weil ja nicht der Record einzeln, sondern gleich der ganze Index geladen wird: So wird ein kluger Optimizer kombinierten Index vDate+ValueID+Messwert verwenden, um die Messwerte zu aggregieren. Zitat:
Zitat:
Zudem ist diese Text-Lösung weder skalierbar noch allgemeingültig. Das Prinzip vielleicht, aber nicht der Code. Und auch in Messdaten werde ich mal mit SQL herumstochern wollen. Mit Textdateien lege ich mir da die Karten. |
AW: Tabellen für viele kleine Datensätze optimieren
Ach Du argumentierst wie n Programmierer aus Indien, der nichts von dem Business versteht, daher stife ich dich jetzt auch mal so ein, als jemanden dem man alles in jeden Schritt erklären muss. Dazu habe ich keine Lust und zweitens hängst vom spezifischen Kunden B, und da ist Medium gefordert mit ihm zusammen zu sitzen und erst mal ein requirements Engeniering durchzuführen. Damit erledigen sich die meisten Punkte, natürlich, wenn der Kunde bereit ist, die nächsten Jahre für diese minifunktionalität mit äußerst beschränkten Nutzen n paar Millionen, mit steigender tendenz, loszumachen, dann ist das auch in Ordnung, nur ich bezweifle dies. Aber wenn, dann sollt er HANA zulegen und jährlich n paar Gig draufsatteln, sonst wird das nix mehr ;)
Wusste nicht, dass hier mittlerweile Systemanalyse, DB Design und Best Practice, zwischenzeitlich verpönt sind ... ... Aber ist mir auch egal ... |
Alle Zeitangaben in WEZ +1. Es ist jetzt 00:27 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