Usuário com melhor resposta
SQL Internals - Aggregate Transformation e Group By

Pergunta
-
Boa noite,
Ao utilizar o componente Aggregate Transformation no SSIS, todas as informações vindas de um data source devem ser carregadas para que seja executada a operação de Group by definida no componente. Fazendo isso envolvendo por exemplo 500 milhôes de linhas no meu caso ocorreu um erro com problema de espaço na memória.
Porém quando executo a mesma lógica via comando T-SQL não há problemas.
Alguém saberia explicar o motivo sendo que nas duas plataformas este dado é tratado na memória ?
Respostas
-
Rafael,
Ocorre este problema porque no pacote do SSIS, a tarefa processa todos os registros antes de finalizar o processo, alocando os dados processados na memória.
No outro caso, quando você executa pelo SSMS, o processamento não armazena a execução em buffer, todo o processo executado é escrito em log e (dependendo das configurações de seu editor ou do contexto onde o script T-SQL está sendo executado) pode ocorrer o output direto dos dados. Com isto, a memória é "reciclada" para uso deste processamento ou de outros que sua instância SQL possa estar gerenciando.
Recomendo que você crie um passo intermediário, alimentando os dados agregados em uma tabela apenas para "swap" de dados (você deve truncar e manipular esta tabela exclusivamente para esta operação). Todo este processo pode ser executado em uma tarefa "Execute SQL" antes das demais ou então em um job separado (agendado antes do processo deste pacote).
Para maiores informações veja:
http://msdn.microsoft.com/en-us/library/ms138031.aspx
http://msdn.microsoft.com/en-us/library/ms177673.aspx
http://technet.microsoft.com/pt-br/library/ms141003(v=sql.110).aspx
Se ajudou na sua solução, não esqueça de marcar como resposta !
Abraços,
Durval Ramos
Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
----------------------------------
Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"- Marcado como Resposta Junior Galvão - MVPMVP, Moderator sexta-feira, 13 de fevereiro de 2015 17:43
Todas as Respostas
-
Rafael,
Antes deste componente ser processado no SSIS existe mais alguma outra atividade?
Diretamente no Management Studio e mesma lógica é processada como você destacou, mas eu acredito que o problema pode esta sendo ocasionado no SSIS devido a alguma dependência ou até mesmo através da conexão que o DataSource pode estar fazendo.
Pedro Antonio Galvão Junior [MVP | Microsoft Evangelist | Microsoft Partner | Engenheiro de Softwares | Especialista em Banco de Dados | Professor Universitário | SoroCódigos] @JuniorGalvaoMVP | pedrogalvaojunior.wordpress.com
-
Rafael,
Ocorre este problema porque no pacote do SSIS, a tarefa processa todos os registros antes de finalizar o processo, alocando os dados processados na memória.
No outro caso, quando você executa pelo SSMS, o processamento não armazena a execução em buffer, todo o processo executado é escrito em log e (dependendo das configurações de seu editor ou do contexto onde o script T-SQL está sendo executado) pode ocorrer o output direto dos dados. Com isto, a memória é "reciclada" para uso deste processamento ou de outros que sua instância SQL possa estar gerenciando.
Recomendo que você crie um passo intermediário, alimentando os dados agregados em uma tabela apenas para "swap" de dados (você deve truncar e manipular esta tabela exclusivamente para esta operação). Todo este processo pode ser executado em uma tarefa "Execute SQL" antes das demais ou então em um job separado (agendado antes do processo deste pacote).
Para maiores informações veja:
http://msdn.microsoft.com/en-us/library/ms138031.aspx
http://msdn.microsoft.com/en-us/library/ms177673.aspx
http://technet.microsoft.com/pt-br/library/ms141003(v=sql.110).aspx
Se ajudou na sua solução, não esqueça de marcar como resposta !
Abraços,
Durval Ramos
Microsoft Partner | MTA | MCSA - SQL Server 2012 | MCSE - Data Platform
----------------------------------
Se foi resolvido clique "Marcar como resposta" e se foi útil "Votar como Útil"- Marcado como Resposta Junior Galvão - MVPMVP, Moderator sexta-feira, 13 de fevereiro de 2015 17:43