Mysql
 sql >> Base de Dados >  >> RDS >> Mysql

Otimizando o pacote SSIS para milhões de linhas com Order by/sort no comando SQL e Merge Join


Tenho duas recomendações:

Classificação do lado do servidor


Em OLE DB Source altere o modo de acesso para SQL Command. E use a cláusula ORDER BY:
Select * from table ORDER BY col1, col2

Depois disso, você deve abrir o editor avançado do OLE DB Source (Clique com o botão direito do mouse na fonte OLE DB, mostre o editor avançado) vá para a guia de colunas e altere a saídaIsSorted propriedade para True e defina alterar o SortKeyPosition para as colunas usadas na cláusula ORDER BY.

Ler dados em partes


Não tenho bons conhecimentos em sintaxe SQL do MariaDB, mas vou dar alguns exemplos em SQLite e Oracle:

Atualização 1 - Problemas no pacote


Existem alguns problemas no pacote:
  • Você está lendo e escrevendo na mesma mesa
  • Você está executando Atualizar e excluir tabelas em uma grande quantidade de dados
  • Você está usando o Merge Join

Algumas recomendações:
  • Tente usar uma tabela de preparo em vez de ler e gravar na mesma tabela, pois você está lendo, gravando, excluindo e atualizando na mesma tabela de destino.
  • Use particionamento na tabela de destino que permite excluir e atualizar registros de uma partição específica em vez de toda a tabela