Datenbank abgleichen

  • VB.NET

Es gibt 5 Antworten in diesem Thema. Der letzte Beitrag () ist von Mad Andy.

    Datenbank abgleichen

    Hallo,
    ich benötige mal einen kleinen Denkansatz.

    Ich habe zwei Datenbanken
    Name & Struktur identisch.

    Ich möchte nun bestimmte Tabellen von Datenbank A
    & Datenbank B abgleichen.
    Welche Möglichkeiten habe ich die auch effektiv erscheinen weil wenn es sich um beispielsweise 50000 Datensätze handelt die in einer Tabelle stehen davon aber vielleicht nur 3000 aktualisiert oder neu geschrieben werden müssen ist es nicht sinnvoll wenn jedesmal die ganze Tabelle kopiert wird. Ich habe es schon mit dem SQLBULKCOPY Befehl probiert aber dieser Befehl macht genau das was ich nicht möchte alles kopieren und vorallen überprüft er auch keine vorhandenen Datensätze ob schon da oder ob auch aktuell. sondern er kopiert immer wieder dazu. die eine Datenbank steht auf einem Firmenserver die andere im Web.
    Hi!

    Der einzige Ansatz, der mir einfällt ist jeden Datensatz einzeln zu überprüfen und zu erstellen / aktualisieren.
    Ist zwar nicht gerade wirtschaftlich, ich kenne aber keine andere Methode.

    Vielleicht weiß einer von euch Datenbank-Gurus noch was? :P


    mfG Andy
    Hey Andy,
    mit der MARS-Technologie lässt sich das gut regeln.
    dadurch das man mehrere Verbindungen auf einem DataReader bzw. umgekehrt betreiben kann.

    Die MARS-Technologie ist neu in VB.net(VB2005)

    Im code muss man dem Connectionstring anweisen das er MARS-fähig ist:

    Quellcode

    1. Dim conn1 As New SqlConnection(connclient & ";MultipleActiveResultSets=True")
    Hi!

    Ich kann mich noch "dunkel" dran erinnern, dass es immer hieß (VB2005-Buch), dass man nur einen Reader pro Verbindung haben kann ^^
    Weißt du zufällig von welchen Servern MARS unterstützt wird? Oder erstellt dann ASP.net automatisch mehrere Verbindungen?


    mfG Andy

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

    MARS ist derzeitig nur für SQL SERVER 2005 verfügbar.
    Bei älteren Versionen geht es auch jedoch nicht mit MARS sondern mann muss dann das Ergebnis der ersten Abfrage und der ersten Verbindung in einer Arraylist zwischen speichern die Verbindung dann schliessen und eine neue Verbindung und Abfrage initieren. Ich denke das sollte so gehen. berichtige mich falls etwas nicht passt Weil ich nur VB.net langsam anfange zu verstehen
    Hi!

    Mein Interesse war weniger bei MS SQL sondern eher bei MySQL.
    Du kannst aber soweit ich weiß mehrere Verbindungen gleichzeitig offen haben. Und pro Thread eine Abfrage, wenn ich mich nicht irre. Kommt aber natürlich alles auf den DB-Server an...
    Sicher bin ich mir aber nicht ;)


    mfG Andy