Mysql
 sql >> Base de données >  >> RDS >> Mysql

Optimisation du package SSIS pour des millions de lignes avec la commande Order by / sort in SQL et Merge Join

J'ai deux recommandations :

Tri côté serveur

Dans OLE DB Source, changez le mode d'accès en Commande SQL. Et utilisez la clause ORDER BY :

Select * from table ORDER BY col1, col2

Après cela, vous devez ouvrir l'éditeur avancé de la source OLE DB (Clic droit sur la source OLE DB, afficher l'éditeur avancé) allez dans l'onglet colonnes et modifiez la sortie IsSorted propriété à True et changez le SortKeyPosition pour les colonnes utilisées dans la clause ORDER BY.

Lire les données en morceaux

Je n'ai pas une bonne connaissance de la syntaxe MariaDB SQL mais je vais donner quelques exemples dans SQLite et Oracle :

Mise à jour 1 - Problèmes de package

Il y a quelques problèmes dans le paquet :

  • Vous lisez et écrivez à partir du même tableau
  • Vous effectuez des mises à jour et des suppressions de tables sur une grande quantité de données
  • Vous utilisez Merge Join

Quelques recommandations :

  • Essayez d'utiliser une table intermédiaire au lieu de lire et d'écrire à partir de la même table puisque vous lisez, écrivez, supprimez, mettez à jour à partir de la même table de destination.
  • Utiliser le partitionnement dans la table de destination qui permet de supprimer et de mettre à jour les enregistrements d'une partition spécifique au lieu de la table entière