Access-Datenbank Aufteilung/Archivierung - Verständnisfrage

  • VB.NET
  • .NET (FX) 4.5–4.8

Es gibt 9 Antworten in diesem Thema. Der letzte Beitrag () ist von Panter.

    Access-Datenbank Aufteilung/Archivierung - Verständnisfrage

    Hallo zusammen.

    Ich arbeite bei meinem Programm mit einer Access-Datenbank. Darin enthalten sind 1-2 Tabellen, die sehr schnell anwachsen. Die DB-Datei selbst ist bei ca. 20mb, was in meinen
    Augen noch völlig OK ist. Gerne würde ich aber ein bisschen für die Zukunft planen. Daher meine Frage:

    Macht es Sinn, die 1-2 großen Tabellen (über 30.000 Einträge, täglich wachsend) in eine separate File zu verschieben?
    Wenn ja, würde das mit dem LinkManager funktionieren? Also ich kenn das noch von früher, dass ich eine separate DB-Datei in die Hauptdatei verlinken
    konnte und ich brauchte nur die Haupt-DB im Programm anzugeben..

    Zur 2. Frage:
    Es wird in 1-2 Jahren so sein, dass wir einige Einträge nicht mehr oder nur noch selten brauchen. Gibt's eine saubere Möglichkeit "Archiv-Datenbanken" anzulegen (vielleicht sogar mit
    gleicher Methode wie oben?) damit die Haupt-DB "klein" bleibt, ich aber trotzdem über die regulären Abfragen an die "alten" Daten dran komme?

    Also eine Überlegung: Für jedes Jahr eine Archivdatenbank-Datei anzulegen.
    Alle Einträge aus der Haupt-Datenbank aus dem Vorjahr (Bsp. 2021) in die Archivdatei (Datenbank2021) reinkopieren bzw. verschieben.
    In der Haupt-DB eine Verknüpfung auf die Datenbank machen und über den "Normalen Weg" trotzdem an die Daten rankommen.

    Freue mich auf Rückmeldung. Archiv ist nicht so wichtig erstmal, das mit dem Splitten käme zeitnah in Frage. ;)
    "Na, wie ist das Wetter bei dir?"
    "Caps Lock."
    "Hä?"
    "Shift ohne Ende!" :thumbsup:
    naja, auf SQL-Server ausweichen ist erstmal keine Option. Ich hab aktuell nur die Möglichkeit mit Datenbankdatei (accdb) auf Netzlaufwerk....
    Mir stellt sich halt grundlegend die Frage ob das funktionieren würde, den gleichen Tabellennamen zu verlinken oder ob ich in meinem Programm
    dann nochmal nen Fass aufmachen muss - also für jede "Archivtabelle" dann ne separate Datenbankverbindung öffnen und vermutlich dann auch temporäre
    tDS-Tabellen im Code erzeugen etc.
    "Na, wie ist das Wetter bei dir?"
    "Caps Lock."
    "Hä?"
    "Shift ohne Ende!" :thumbsup:

    tragl schrieb:

    Macht es Sinn, die 1-2 großen Tabellen (über 30.000 Einträge, täglich wachsend) in eine separate File zu verschieben?

    Nein, macht es nicht. Was würdest du dir davon erhoffen? Deine Datenmenge scheint ja nicht sonderlich groß zu sein, wenn die aktuelle Datei gerade mal 20 MB groß ist.
    Wenn du vorhast, dass mehrere Benutzer auf deine DB zugreifen sollen, ist Access sowieso die falsche Wahl. Ich würde da eher zu SQLite tendieren, wenn es eine dateibasierte Datenbank sein soll und ein SQL-Server keine Option ist.

    Bzgl. Archiv: Auch hier würde ich davon absehen, die Daten auszulagern. Erstell einfach "Archivtabellen" mit gleichem Schema wie deine "Haupttabellen" und verschiebe alte Daten einfach in die Archivtabelle.

    ISliceUrPanties schrieb:

    und verschiebe alte Daten einfach in die Archivtabelle.

    Also dann doch umprogrammieren, falls Archiv dann temp-tDS-Table anlegen etc...

    ISliceUrPanties schrieb:

    Ich würde da eher zu SQLite tendieren

    Wenn dafür was installiert werden muss, kann ich das knicken - unsere IT spielt da noch nicht mit..
    "Na, wie ist das Wetter bei dir?"
    "Caps Lock."
    "Hä?"
    "Shift ohne Ende!" :thumbsup:

    Kasi schrieb:

    alles rätselraten

    bei Bedarf brauch ich selektierte Daten davon (kann jederzeit passieren, jenachdem was sich der User anschauen will)

    ISliceUrPanties schrieb:

    Muss man nicht.

    Hört sich gut an, ich befass mich ggf. mal damit

    ErfinderDesRades schrieb:

    Prinzipiell müsste man der IT da auf die Füsse treten.

    Jo, sind bei uns leider alles Idioten - die guten von der IT haben inzwischen gekündigt, der Rest macht Dienst nach Vorschrift und pisst einem an den Karren, wo es nur geht. Ich sag nur (wie du ja bereits sagtest) NIH-Syndrom :cursing:
    Ich bräuchte von denen einen ordentlichen Mysql oder mssql-server und die anwendung müsste über citrix/rdp gehostet werden und alles wäre tutti.
    "Na, wie ist das Wetter bei dir?"
    "Caps Lock."
    "Hä?"
    "Shift ohne Ende!" :thumbsup:
    Hallo

    Bei Access ist die maximale Grösse 2GB. Falls das nicht reicht, könntest Du vielleicht die Daten pro Jahr speichern, evtl. könntest Du eine Datenbank anlegen, bei der die anderen Datenbanken nur verknüpft sind.

    Wichtig ist auch, dass Du nicht alle Daten in das Dataset lädst sonder eben nur die benötigten, falls dies möglich ist.

    Zudem macht es auch Sinn, ab und zu die Datenbank zu reparieren/komprimieren.