Extrem langsam insert OpenQuery Leistung auf SQL Server zum MySQL-server verbunden
Mithilfe von SQL Server Management Studio zu kopieren Sie den gesamten Inhalt einer Tabelle aus SQL Server in eine identische Tabelle auf einem MySQL-Maschine. Der MySQL-db verbunden ist, um Management Studio einen linked server mit dem MySQL ODBC 5.1 driver. Mit einer einfachen Anweisung funktioniert gut, führt aber extrem langsam.
INSERT INTO openquery(MYSQL, 'select * from Table1')
SELECT * from MSSQL..Table2
Ich habe eine Tabelle mit etwa 450.000 Datensätze und es dauert nur knapp über 5 Stunden für die übertragung. Ist das normal? Ich habe keine Vorherige Erfahrung verknüpfen von MySQL-Servern.
- Sie sind physisch kopiert jeder, der von 450.000 Datensätze aus der mssql-source auf einen neuen server und Plattenplatz. 5 Stunden ist 40ms pro Datensatz. Wird es langsam für die Aufzeichnung von Daten?
Du musst angemeldet sein, um einen Kommentar abzugeben.
Wie lange dauert es, führen Sie einfach die "SELECT * from MSSQL..Tabelle2", wenn man es aus dem management studio?
Es gibt mehrere Gründe, warum Sie Ihre Abfrage kann langsam sein:
Wenn Sie eine massive bulk-Kopie, die Sie normalerweise nicht tun es alle auf einen Schlag, weil große insert/update/delete-Transaktionen sind sehr teuer, wie die DB hat, um vorbereitet zu sein, um roll-back zu jeder Zeit, bis die Transaktion abgeschlossen ist. Es ist besser, kopieren in Chargen (beispielsweise 1000 Datensätze auf einmal). Ein gutes Werkzeug, um dies zu tun Massenkopieren wird SSIS (die mit SQL Server ausgeliefert wird), die diese Dosierung für Sie.
Sollten Sie ausdrücklich festlegen der Sortierfolge für die Tabelle, die Sie kopieren aus, vor allem, wenn Sie kopieren in eine Tabelle, die einen gruppierten index verfügen. Sie sollten sicherstellen, dass Sie das einfügen in Sortierreihenfolge des clustered index (d.h. die gruppierten index ist in der Regel ein int/bigint so sicherzustellen, dass Datensätze eingefügt werden, um 1,2,3,4 nicht 100,5,27,3 etc.)