![]() |
AW: Firebird Datenbankgröße
@Thomas: ich habe das ehrlich gesagt noch nie gemacht - aber wo ist der Unterschied zwischen einer (eingestellten) Read-Only DB und einer DB in die ich keine Inserts mache? Sortiert FB hier dennoch immer wieder Daten um?
|
AW: Firebird Datenbankgröße
Er macht ja Inserts
|
AW: Firebird Datenbankgröße
Und die sind immer am Ende? So von wegen Timestamp und Index drauf. Weiß jetzt nicht, wie FB das macht, aber die Daten werden ja wohl ans Ende gepackt,
|
AW: Firebird Datenbankgröße
Nein. Wenn vorher ein datensatz gelöscht wurde, wird der Speicherplatz für neue Inserts wieder verwendet.
|
AW: Firebird Datenbankgröße
Zitat:
|
AW: Firebird Datenbankgröße
Zitat:
128MB durch 21 Mio = 6 Bytes der Index besteht auf 4 Byte Nutzdaten Aufbau eines Index Records: ![]() struct btree_nod { UCHAR *nodePointer; USHORT btn_prefix; USHORT btn_length; SLONG pageNumber; UCHAR *data; RecordNumber recordNumber; bool isEndBucket; bool isEndLevel; 1+2+2+4+4+4+1+1 = 19 Byte bei 4 Byte Nutzlast sind dann 400 MB , dazu kommt dass die Indexe in Pages verwaltet werden die meist nicht ganz gefüllt werden Plus Overhead um die Pages zu verwalten , 2 Indizes laut dem anderen Thread also über 800MB Record Header : (auch von der IBexpert seite) struct rhd { SLONG rhd_transaction; SLONG rhd_b_page; USHORT rhd_b_line; USHORT rhd_flags; UCHAR rhd_format; UCHAR rhd_data[1]; }; 4+4+2+2+1+ Nutzlast 36 Bytes bei 21 Mio Record 756 MB Plus 800 MB Index so dass das mit den 1.65 GB schon hinkommt mfg Hannes |
AW: Firebird Datenbankgröße
Ich kann mir nicht vorstellen, dass niemals gelöscht wird, sprich die Tabelle ins Unendliche wachsen darf/kann.
Firebird hat auch keinen Clustered Index wie in SQL Server bzw. eine Index-Organized Table wie in Oracle. |
AW: Firebird Datenbankgröße
Zitat:
Die sollen in der DB verbleiben. Quasi die letzten 10 Jahre. Wenn die DB an dieser Stelle ankommt werden die ersten entfernt. Beim aktuellen Beispiel wären das 1,6GB zu 0,75 = x zu 10 -> 21,3GB (0,75 Jahre im Gerät bei 10 Jahre gesamt) Inzwischen ist die Entscheidung gefallen, daß jedes Gerät seine eigene DB für die Record Daten bekommt. Damit sind ein paar Probleme vom Tisch (Gesamtgröße) PS: Ich rechne lieber mit dem WorstCase als später in Probleme zu laufen weil man sich nicht richtig Gedanken gemacht hat. Zitat:
|
AW: Firebird Datenbankgröße
In welcher Granularität musst du die Messdaten aufbewahren?
Bei Timeseries Anwendungsfällen geht man in der Regel so vor, dass periodisch Daten von einer höheren Auflösung in kleinere Auflösungen aggregiert wird und im selben Kontext Daten der höheren Auflösung gelöscht werden. Außer du bist im Bereich Garantie wo du die feingranularen Daten zur Nachvollziehbarkeit benötigst. Bzgl. Datenbank je Gerät. Im Prinzip musst du dann X Datenbanken bzgl. Schemastruktur auf einem entsprechenden Stand halten, jede Datenbank sichern etc., bei einem Firebird/ODS Upgrade diese sichern/wiederherstellen etc. Dann hast du vielleicht auch Stammdaten, die jedem Gerät gemein sind. Wie machst du das? Je nach Datenvolumen and Anwendungsfall haben hier (für Zeitreihen) BigData-Lösungen ala Cassandra absolut ihre Daseinsberechtigung. Aber das ist eine ganz andere Welt ... |
AW: Firebird Datenbankgröße
Zitat:
Gruß K-H |
Alle Zeitangaben in WEZ +1. Es ist jetzt 05:57 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 by Thomas Breitkreuz