DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da SQL Magazine DIGITAL ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!


Processamento Paralelo de instruções SQL - Revista SQL Magazine 91

O artigo aborda como utilizar técnicas de programação paralela para executar instruções SQL como INSERT, SELECT, UPDATE e DELETE mais rapidamente no SQL Server. São apresentadas técnicas, testes e comentários sobre o uso de paralelismo em banco






O principal componente de um computador moderno é o microprocessador. Este componente vem recebendo cada vez mais tecnologias inovadoras para atender as demandas de processamento da maioria das aplicações independente de área de especialização, dispositivos ou ambientes. Uma das principais tecnologias que vem sendo aprimorada, junto com o aumento do clock do microprocessador, envolve o emprego de múltiplos núcleos. De fato, a maioria dos fabricantes de microprocessadores atualmente investe mais na capacidade de multiprocessamento através de diversos núcleos (cores) do que no aumento da quantidade de instruções que podem ser executadas a cada ciclo do microprocessador. Este investimento é observado nos microprocessadores equipados tanto em computadores desktop e servidores como em dispositivos móveis (smartphones e tablets) que já estão recebendo microprocessadores com múltiplos núcleos.

Contudo, infelizmente o desenvolvimento atual de software não consegue acompanhar o crescimento tecnológico proporcionado pelas arquiteturas de múltiplos núcleos. Isso implica que em quase todas as aplicações o uso do microprocessador é subutilizado, pois os desenvolvedores não utilizam as técnicas corretas para obter o máximo desempenho do microprocessador. Uma das maneiras de se explorar a maior utilização dos microprocessadores de múltiplos núcleos é o emprego de técnicas de programação paralela. Com base neste contexto, este artigo apresentará como é possível aplicar algumas das técnicas de processamento paralelo junto com banco de dados, uma área que, infelizmente, possui poucos recursos para a exploração de tais técnicas.

Neste contexto, este artigo apresentará como obter ganhos de desempenho significativos quando se utiliza técnicas de paralelismo em instruções SQL como SELECT, INSERT, UPDATE e DELETE através de diversos testes e análises dos tempos de execução. O artigo abordará aspectos da programação de instruções paralelas no SQL Server e pode ser utilizado como base para implementar as ideias aqui apresentadas em outros contextos, instruções, bancos de dados e conjunto de operações.

Processamento paralelo

O processamento paralelo geralmente é visto como uma área à parte da programação e que, infelizmente, não é ensinada e disseminada entre a maioria dos desenvolvedores. Apesar da sua extrema importância não apenas para aplicações científicas de alto desempenho, identificadas pela sigla HPC (High Performance Computing) – veja a Nota DevMan 1, são raros os exemplos de aplicações comerciais onde é possível encontrar soluções que exploram técnicas de processamento paralelo para otimização e ganho de desempenho.

 Neste ponto é importante destacar que o processamento paralelo deve ser diferenciado do processamento distribuído, pois a primeira área se preocupa exclusivamente com otimização do tempo de execução enquanto a segunda área foca em questões como balanceamento de carga, disponibilidade, otimização de recursos (tempo de execução, memória, acesso a disco), escalabilidade, segurança e outros aspectos.

No contexto de banco de dados é raro encontrar o uso adequado de algumas das principais técnicas de processamento paralelo. Um dos motivos para esta ausência está ligado às origens da área: o armazenamento e o gerenciamento de dados e não a execução de grandes quantidades de operações que se beneficiariam de um processamento otimizado. Contudo, cada vez mais os bancos de dados são responsáveis por realizar muitas operações nos dados, principalmente devido à execução simultânea de múltiplas instruções SQL realizadas por diversos usuários diferentes. A propósito, um dos principais testes de desempenho de bancos de dados, popularmente conhecido como TPC (Transaction Processing Performance Council – Nota DevMan 2), foca na capacidade dos bancos de dados em executar transações de forma concorrente e não em métricas específicas para a medição de capacidade de processamento, como Flops (veja a Nota DevMan 3).

 A maioria dos SGBDR (Sistemas Gerenciadores de Bancos de Dados Relacionais) possui o suporte à execução de instruções SQL implementado através de um otimizador de consultas. Este componente, também chamado de motor ou engine, recebe a instrução SQL enviada pela aplicação ou usuário e através de várias técnicas gera um plano de execução otimizado que processará a instrução utilizando todos os recursos disponíveis para que ela seja executada mais rapidamente e com o menor consumo de recursos. De fato, o otimizador de consultas emprega algumas técnicas de processamento paralelo de forma automática e transparente. Cabe ao DBA ou programador apenas realizar ações de forma indireta visando melhorar o plano de execução que o otimizador pode gerar através de técnicas de tuning como, por exemplo, organizar os dados, criar índices, montar a instrução de forma adequada e outras técnicas. Contudo, como veremos no decorrer deste artigo, nem sempre o plano de execução fornecido pelo otimizador de consultas gera ganhos de desempenho melhores do que a implementação de técnicas de processamento paralelo.

"


ATENÇÃO! A exibição deste artigo foi interrompida.


  Este é um post disponível para assinantes MVP
Este post também está disponível para assinantes da SQL Magazine DIGITAL ou para quem possui Créditos DevMedia.  Clique aqui para saber mais!






    0 COMENTÁRIO

[Fechar]

Este post é fechado - você precisa ter acesso ao post para incluir um comentário.


Nenhum comentário foi postado - seja o primeiro a comentar!



[Este post ainda não foi associado a uma sequência]
Publicidade
Autor
Mauro Pichiliani

Mauro Pichiliani é bacharel em Ciência da Computação, Mestre em computação pelo ITA (Instituto Tecnológico de Aeronáutica) e possui a certificação MCDBA. Trabalha há mais de 7 anos utilizando diversos bancos de dados, como o SQL Server, Oracle e MySQL. Escreve regularmente para a revista SQL Magazin...


Space do autor
Estatísticas
Favorito:
Comentários:
Feedback:
Utilidade:
0   0
[Fechar]

Você precisa estar logado para dar um feedback.

Clique aqui para efetuar o login
[Fechar]


Este post está fechado. Saiba mais sobre a assinatura MVP!
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2012 - Todos os Direitos Reservados a web-03