Mysql
 sql >> Database >  >> RDS >> Mysql

Ottimizzazione del pacchetto SSIS per milioni di righe con Order by / sort nel comando SQL e Merge Join

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:

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