Ho due consigli:
Ordinamento lato server
In OLE DB Source cambia la modalità di accesso in SQL Command. E usa la clausola ORDER BY:
Select * from table ORDER BY col1, col2
Dopodiché dovresti aprire l'editor avanzato dell'origine OLE DB (fare clic con il pulsante destro del mouse sull'origine OLE DB, mostrare l'editor avanzato) vai alla scheda Colonne e cambia l'outputIsSorted
proprietà su True
e imposta cambia il SortKeyPosition
per le colonne utilizzate nella clausola ORDER BY.
Leggi i dati in blocchi
Non ho una buona conoscenza della sintassi SQL di MariaDB, ma fornirò alcuni esempi in SQLite e Oracle:
- La lettura di un enorme volume di dati da Sqlite a SQL Server non riesce a pre-esecuzione
- Ottenere il massimo da n a n righe da db2
- SSIS non riesce a salvare i pacchetti e riavvia Visual Studio
Aggiornamento 1 - Problemi con il pacchetto
Ci sono alcuni problemi nel pacchetto:
- Stai leggendo e scrivendo dalla stessa tabella
- Stai eseguendo l'aggiornamento e l'eliminazione di tabelle su una grande quantità di dati
- Stai utilizzando Unisci unisciti
Alcuni consigli:
- Prova a utilizzare una tabella di staging invece di leggere e scrivere dalla stessa tabella poiché stai leggendo, scrivendo, eliminando, aggiornando dalla stessa tabella di destinazione.
- Utilizza il partizionamento nella tabella di destinazione che consente di eliminare e aggiornare i record da una partizione specifica anziché dall'intera tabella