Tabellen-Transfer von MSSQL zu MySQL mit VB (2008)

11/03/2008 - 11:51 von Martin Steiger | Report spam
Guten Tag alle

Unsere Produktdaten werden in Deutschland auf einem MS-SQL-Server
gespeichert. Um diese Daten "vernünftig" pflegen zu können, möchte ich
diese lokal (CH) auf einen MySQL-Server übernehmen. Da sich die Daten
tàglich àndern können, kann ich den Transfer nicht mit irgendwelchen
Tools machen, sondern ich möchte, dass dieser direkt in meiner
Visual-Basic-Applikation durchgeführt wird. Ausserdem müsste der
Benutzer auch die Möglichkeit haben, nur einzelne Tabellen zu aktualisieren.

Funktioniert eigentlich alles ganz gut. Da aber einige Tabellen ~300'000
Datensàtze haben, wàre jetzt die Frage, welches das performanteste
Vorgehen ist bzw. ob ihr noch andere Lösungsansàtze zu den bereits
versuchten habt.

Probiert habe ich bereits folgendes:

1) Zur Remote-Datenbank verbinden und mit einem DataReader jeden
Datensatz einzeln und jeden Datensatz gleich mit einem
MysqlCommand.ExecuteNonQuery in der MySQL-Datenbank hinzufügen oder
aktualisieren.
Datensàtze: 1'000, Dauer: 00:00:02.17
Datensàtze: 67'000, Dauer: 00:03:03.26

2) Beide Tabellen in ein Dataset schreiben, die Remotetabelle Datensatz
für Datensatz durchlaufen und jeden Datensatz mit LoadData in die
Tabelle des "lokalen" Datasets schreiben und am Schluss das Dataset mit
Hilfe einen MySQL-Adapters und update in die lokale Datenbank schreiben.
Datensàtze: 1'000, Dauer: 00:00:02.26
Datensàtze: 67'000, Dauer: 00:11:47.27

Lösung 2 scheint mir für Tabellen mit bis zu ca. 10'000 Datensàtzen
schneller, ab ca. 10'000 Datensàtzen wird das Ganze aber extrem langsam.
Ich vermute, dass schlussendlich dann auch das Überspielen der
Änderungen des Datasets auf den MySQL-Server ziemlich lange dauert.

Hàtte jemand von Euch noch eine Idee oder einen Vorschlag, wie ich die
Tabellen aus der MS-SQL-Datenbank möglichst performant in die MySQL-DB
bringe?

Für Ideen bin ich jetzt schon dankbar.. ;-)

Grüsse

Martin
 

Lesen sie die antworten

#1 Matthias Hübner
11/03/2008 - 14:57 | Warnen spam
Martin Steiger wrote:


Hàtte jemand von Euch noch eine Idee oder einen Vorschlag, wie ich die
Tabellen aus der MS-SQL-Datenbank möglichst performant in die MySQL-DB
bringe?

Für Ideen bin ich jetzt schon dankbar.. ;-)




Hast du schon:

INSERT INTO Ziel [IN ExterneDatenbank] [(Feld1[, Feld2[, ...]])]
SELECT [Quelle.]Feld1[, Feld2[, ...]
FROM Tabellenausdruck

oder:

SELECT Feld1[, Feld2[, ...]] INTO NeueTabelle [IN ExterneDatenbank]
FROM Quelle

probiert?

Grüße
Matthias

Ähnliche fragen