Artigo da SQL Magazine 29 - Aperfeiçoando o desempenho de uma agregação

Artigo da SQL Magazine - edição 29.

Clique aqui para ler esse artigo em PDF.

Clique aqui para ler todos os artigos desta edição

Aperfeiçoando o desempenho de uma agregação

Mauro Pichiliani

Como professor de banco de dados, um dos tópicos que mais gosto de ensinar em cursos introdutórios de SQL é o uso de agregações. Gosto deste assunto porque posso montar vários exemplos práticos que facilitam o aprendizado e fornecem uma boa base para ensinar conceitos da área de OLAP mais avançados.

Geralmente explico a necessidade de agregação de dados primeiro e depois sigo mostrando a sintaxe dos comandos e funções que fazem a agregação junto com exemplos práticos. Em uma das turmas, ao apresentar as poucas funções de agregações existentes, um aluno me perguntou:

- Professor, e se eu precisar fazer uma agregação que multiplica valores?

Respondi dizendo que os principais gerenciadores de bancos de dados do mercado não possuem uma função pronta que agregava valores através da multiplicação. A abordagem que sugeri para o aluno foi montar um algoritmo que utiliza um laço para varrer os dados e efetuar a multiplicação, sem utilizar os recursos de agregação do banco de dados.

Várias áreas de conhecimento possuem aplicações para a agregação que multiplica valores. Como exemplo podemos citar a estatística, que necessita da multiplicação de valores em seqüência para o cálculo de probabilidades, e a economia onde freqüentemente há a necessidade de aplicar a multiplicação de indicadores econômicos em uma série de valores.

Este artigo discute a implementação de soluções para a multiplicação de valores em uma agregação. Duas abordagens são apresentadas: a utilização de uma expressão matemática e a criação de uma função de agregação definida pelo usuário. Resultados experimentais do desempenho das duas abordagens, obtidos com o SQL Server 2005 Beta 2, são apresentados e comparados qualitativamente.

Agregando e multiplicando

As novas versões dos principais gerenciadores de bancos de dados líderes de mercado permitem o desenvolvimento de funções de agregações definidas por usuário através da integração com linguagens de programação ou pela utilização de dialetos do padrão SQL." [...] continue lendo...

Artigos relacionados