Olá pessoal, tudo bem!?

Post com dica rápida para vocês!!

Quero mostrar neste post, como evitar o uso da task de Sort (ordenamento) no nosso processo de ETL. 

E porque isso é importante?! Bem, assim como o Order By em uma query, o Sort também atua de maneira similar, ainda que seja processado na memória, ele age como um cursor operando linha após linha, tornando o processamento mais lento.

Então, para agilizar nosso processo de ETL, podemos determinar nas configurações das tabelas a propriedade de ordenamento, ordenar as colunas e utilizar assim para o por exemplo, tasks de Joins. 

O primeiro passo é selecionar as fontes as quais vamos trabalhar. Neste processo peguei as tabelas ProductSubCategory & ProductCategory.

Agora, vamos ver como atribuímos a propriedade e ordenamos as colunas.

Quando clicar em “Show Advanced Editor”, esta janela irá se abrir. 

Vá na última aba, mude a propriedade circulada em vermelho “IsSorted” para True. Ao fazer isso, teremos de editar a ordem das colunas agora.

Aqui, é muito importante entender o seguinte:

O SSIS pede uma coluna com valor 0, então, aconselho a colocar a coluna que não irá utilizar na comparação dos Joins. Aqui por exemplo, coloquei como valor 0 a coluna ProductSubCategoryID. 

Em vermelho, alteramos a posição da coluna, colocando ProductCategoryID em primeiro. Para o valor 0 coloque ProductSubCategoryID e para o valor 2 ProductSubCategoryName.

Ficando assim, sua tabela ordenada para a operação de Join. O mesmo pode ser feito com a tabela ProductCategory caso seja necessário.

Na tarefa de Join, escolha qual tipo de join quer executar e quais colunas a task deverá gerar ao seu final. Garanta que a sua tarefa tenha esta configuração.

Crie uma tarefa simples de “Flat File Destination” para gerar um arquivo TXT para vermos o resultado final e mande executar o processo.

Basta ir no diretório onde o arquivo foi criado para conferir os dados inseridos!

Este foi um post rápido e simples onde quis mostrar uma alternativa a tarefa de sort que em grandes volumes de dados, pode causar uma certa lentidão no seu ETL.

Espero que tenham gostado, saúde!!!