Access Datenbank zu MYsql umwandeln

  • VB.NET

Es gibt 10 Antworten in diesem Thema. Der letzte Beitrag () ist von schnibli.

    Access Datenbank zu MYsql umwandeln

    Hallo zusammen,

    Ich habe eine komplette Datenbank mit Access Tabellen erstellt. Nun ist das Problem das diese sehr langsam wird und ich gerne auf mysql umsteigen würde.
    Warum ich diese in Access Programmiert habe:
    Ich war noch nicht vertraut mit mysql und die Tabellen waren schon in Access daher habe ich dies übernommen.

    Meine Frage:
    Kann ich die Datenbank auf mysql ändern, oder muss ich da komplett neu starten?
    ich arbeite mit zurzeit mit Datasets.

    gruss
    wenn mans richtig gemacht hat, und die mySql-DB ist vonne Tabellenstruktur her 100% kompatibel zum Dataset, dann braucht man nur den Connectionstring auszutauschen.

    Ausserdem hat man bei mySql schnell VersionsKonflikte, oder gerät an die falschen Connectoren und so Zeug.

    Vlt. liegt die Langsamkeit aber auch garnet an Access, unds ist iwie nur schlecht konfiguriert, oder die Anwendung schlecht geproggt.

    schnibli schrieb:

    nach sehr vielen Datensätze wurde sie wirklich langsam
    Von welcher Größenordnung reden wir denn?
    Tausende, Millionen, Milliarden...

    Wie viele Tabellen?
    Sind die Spalten, nach denen du in den Abfragen gruppierst oder sortierst alle mit einem Index versehen?
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --

    schnibli schrieb:

    40 Tabellen, 1'000'000 Daten
    Das ist nichts, was Access in die Knie zwingen dürfte, wenn das Design stimmt.
    Ein nicht optimales Design wird sich auch beim Wechsel der DB nicht korrigieren.
    Deshalb würde ich zuerst dieses Problem bekämpfen.

    schnibli schrieb:

    Zuweisungen habe ich alle im Dataset-Designer erstellt
    Keine Ahnung, wie gut der ist.
    Aber diesbezüglich halte ich seine Intelligenz für eingeschränkt.
    Zumindest würde ich manuell kontrollieren, ob und welche Spalten er indiziert.

    Befass dich mal mit dem Thema.
    Theorie dazu findest du im Netz.
    Bin beim wahllosen Googeln gerade mal hier drauf gestoßen:
    szweb.de/Datenbankperformance/Indexplanung-Seite-225.html
    Mit etwas Mühe findest du sicher auch noch bessere und umfangreichere Artikel.
    Aber die grundsätzliche Problemstellung ist auch dort erklärt, vor allem im zweiten Teil.
    --
    If Not Program.isWorking Then Code.Debug Else Code.DoNotTouch
    --

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „petaod“ ()

    Dataset-Designer hat mitte DB garnix zu tun, und Zuweisungen kann man damit nicht machen.

    Es gibt zig Möglichkeiten, die Performance kaputt zu kriegen.
    Eine Möglichkeit wäre, 100000 Datensätze zu laden, und an die Tabelle ein DGV zu binden.
    Möglichst mit ColumnSizeMode.AllCells, sodass bei jedem hinzukommenden Datensatz das ganze DGV seine Spaltenbreite neu überdenkt.

    Jedenfalls ist eine gründlichere Untersuchung notwendig, welche Befehle im einzelnen zu lange dauern.
    während des Ladens kannste als erstes probieren, mit DataTable.BeginLoadData/EndLoadData das Databinding zu suspendieren. Nach dem Laden musste dann aber Dataset.EnforceConstraint auf True zurückstellen, denn .BeginLoadData stellt das auf False :(.

    Die Spaltenbreiten auf AutoSizeColumnMode.None setzen, und gucken, ob damit die Performance schon reicht.
    Soll ich dies "ColumnSizeMode.AllCells" Rausnehmen und fixe Spaltenangaben geben?

    Zurzeit lade ich die Dateien ganz "einfach" ein

    VB.NET-Quellcode

    1. Me.TblAnlagenNrTableAdapter.Fill(Me._DB_AnlagenDatenDataSet1.tblAnlagenNr)

    Die frage ist, wie ich das ummodle um die gewünschte DataTable.BeginLoadData/EndLoadData ereiche :s

    Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von „schnibli“ ()