Mysql
 sql >> Datenbank >  >> RDS >> Mysql

Optimieren des SSIS-Pakets für Millionen von Zeilen mit Sortieren nach / Sortieren im SQL-Befehl und Merge Join

Ich habe zwei Empfehlungen:

Serverseitige Sortierung

Ändern Sie in OLE DB-Quelle den Zugriffsmodus auf SQL-Befehl. Und verwenden Sie die ORDER BY-Klausel:

Select * from table ORDER BY col1, col2

Danach sollten Sie den erweiterten Editor der OLE DB-Quelle öffnen (Rechtsklick auf die OLE DB-Quelle, erweiterten Editor anzeigen) Gehen Sie zur Registerkarte Spalten und ändern Sie die AusgabeIsSorted -Eigenschaft auf True und ändern Sie die SortKeyPosition für die in der ORDER BY-Klausel verwendeten Spalten.

Daten in Blöcken lesen

Ich habe keine guten Kenntnisse in MariaDB SQL-Syntax, aber ich werde einige Beispiele in SQLite und Oracle geben:

Update 1 - Paketprobleme

Es gibt einige Probleme im Paket:

  • Sie lesen und schreiben aus derselben Tabelle
  • Sie aktualisieren und löschen Tabellen für eine große Datenmenge
  • Sie verwenden Merge Join

Einige Empfehlungen:

  • Verwenden Sie eine Staging-Tabelle, anstatt aus derselben Tabelle zu lesen und zu schreiben, da Sie aus derselben Zieltabelle lesen, schreiben, löschen und aktualisieren.
  • Verwenden Sie die Partitionierung in der Zieltabelle, die es ermöglicht, Datensätze aus einer bestimmten Partition anstelle der gesamten Tabelle zu löschen und zu aktualisieren