Artigo do tipo Tutorial
Recursos especiais neste artigo:
Conteúdo sobre boas práticas
Paralelismo no Oracle Database 11G
Analisaremos neste artigo o recurso de paralelismo automático no Oracle Database 11G, demonstrando como configurá-lo, os seus principais benefícios, vantagens e os cuidados que devem ser tomados ao utilizá-lo em determinados ambientes. Demonstraremos, por fim, como o paralelismo automático no Oracle Database 11G pode ser muito simples e fácil de usar e como ele é eficiente para otimizar instruções SQL longas e que exigem muito processamento do Banco de Dados.


Em que situação o tema é útil
Em ambientes de Bancos de Dados críticos, o uso de paralelismo automático nas operações de Bancos de Dados pode ser um forte aliado para otimizar sistemas que exigem ou necessitam de máxima performance em tempo de resposta. O paralelismo automático é um recurso muito útil para realizar operações de cargas ou leituras de dados intensivas em ambientes OLAP, grandes Bancos de Dados e até mesmo para realizar processamento batch ou longas instruções SQL em ambientes mistos (OLTP e OLAP) ou OLTP.

Este artigo apresentará o recurso de paralelismo automático no Oracle Database 11G, suas novas características e benefícios, e demonstrará como configurá-lo para que possamos executar operações paralelizadas automaticamente em um banco de dados Oracle sem qualquer esforço extra para alterar aplicações, instruções SQL ou até mesmo objetos do banco de dados (BD).

Antes, porém, é necessário entender o que é paralelismo, quando podemos implementar este recurso, como ele trabalha e vários outros conceitos relacionados ao assunto. Também é importante entender que para utilizar paralelismo temos que conhecer muito bem o ambiente de BD para avaliar se o seu uso poderá nos trazer benefícios.

Em ambientes já saturados, ambientes com muitos usuários concorrentes ou ambientes que executam pequenas instruções SQL, não vale a pena utilizar paralelismo. O paralelismo é um recurso poderoso, mas ele só proporciona ganhos de performance em ambientes com recursos de CPU e I/O subutilizados e em longas instruções SQL.

No Oracle Database 11G, no entanto, o risco de utilizar paralelismo automático e ter uma degradação no desempenho geral do BD é menor em relação às versões anteriores graças aos novos recursos de cálculo automático do grau de paralelismo baseando-se no tamanho do segmento e carga geral do BD, enfileiramento de instruções paralelas e in memory parallel execution.

O que é paralelismo?

Paralelismo, em bancos de dados, é o termo utilizado para definir execução paralela, que por sua vez, é a habilidade do Sistema Gerenciador de Banco de Dados (SGBD) empregar múltiplos processadores para executar uma única operação. Deste modo, o servidor divide uma única tarefa em partes menores e pode executá-las concorrentemente para reduzir o tempo total de execução.

O paralelismo normalmente reduz drasticamente o tempo de resposta de operações longas de cargas ou consultas a dados, e pode ser muito útil em grandes bancos de dados, principalmente em bases OLAP (OnLine Analytical Processing).

Dentre as principais operações de banco de dados em que o paralelismo pode ser empregado podemos citar:

· Queries que executam operações Full Table Scan (FTS) em grandes tabelas ou Index Scan (IS) em tabelas particionadas;

· Criação de grandes índices;

· Criação de grandes tabelas ou grandes visões materializadas;

· Instruções de bulk como inserts, updates, merges e deletes;

· Queries que acessam objetos LOBs.

Quando implementar paralelismo?

O paralelismo pode ser implementado em qualquer banco de dados Oracle nas versões Standard Edition ou Enterprise Edition, porém você só conseguirá obter os benefícios deste poderoso recurso se o servidor do banco de dados possuir os seguintes requisitos:

· Conter múltiplos processadores e/ou núcleos de processadores. Se um só processador (ou núcleo) for utilizado para processar uma instrução paralelizada, o custo de gerenciar e executar múltiplos processos será maior do que processar a mesma instrução em modo serial (com um só processo em um processador);

· A largura de banda de I/O deve ser suficiente para processar mais dados. Quando uma instrução SQL, por exemplo, é executada com cinco processos paralelos concorrentes, você precisará de cinco vezes mais banda de I/O do que precisaria para um processo serial. Se a banda de I/O do servidor já estiver saturada, ao executar processos paralelos, o I/O será um gargalo e você não conseguirá obter ganhos de performance relevantes;

· O conjunto de processadores está sendo subutilizado ou intermitentemente utilizado, com uso médio de até 30% dos recursos de CPU. ...

Quer ler esse conteúdo completo? Tenha acesso completo