Técnicas de tuning lógico

Este artigo apresenta uma série de boas práticas que podem ser consideradas para a otimização do banco de dados. Também serão apresentados alguns exemplos do uso dessas práticas.

Fique por dentro
Este artigo é útil aos profissionais de banco de dados nos momentos em que os bancos de dados relacionais apresentarem lentidão, concorrência e/ou bloqueio de processos.

Com ele, será possível traçar um plano para atuar rapidamente em ambientes críticos. Os conceitos que serão abordados têm como objetivo esclarecer as principais dúvidas dos profissionais que atuam na linha de frente de um banco de dados de produção.

Não devemos pensar em um banco de dados somente como armazenamento de dados, mas sim, atentar para como ele processa e trata essas informações de forma sistêmica, consistente e íntegra.

O tratamento dessas informações pode ocorrer de diversas formas, utilizando soluções que são apresentadas por diferentes arquitetos (por exemplo: client/server, três camadas e camada de abstração de dados). Seja qual for a solução, o que interessa no final é a disponibilidade dos dados.

Quando se trata de bancos de dados de missão crítica, a pressão sofrida pela equipe responsável pelo ambiente de produção (em TI) da empresa costuma ser muito maior, já que há a necessidade de disponibilidade de dados em regime de vinte e quatro horas por dia durante os sete dias da semana.

Normalmente são pouquíssimas as janelas de manutenção e uma instabilidade, mesma que momentânea, pode criar problemas que são sentidos imediatamente por todos os usuários conectados.

Evitar momentos de instabilidade e se antecipar é uma tarefa do DBA para o ambiente de produção. Essa atividade é um pouco diferente do DBA que está ligado a projetos e que irá modelar o banco de dados e encontrar a melhor forma de processamento e armazenamento de informações. No entanto, esse último é igualmente responsável pelo desempenho do ambiente produtivo.

Em muitas empresas, o mesmo profissional atua nas duas funções justamente para ajudar a área de desenvolvimento de aplicações e implementar, desde o início do projeto, todas as regras, normas e modelagem que o DBA acredita ser mais viável para aquele projeto.

Quando existem dois DBAs desenvolvendo papéis diferentes, sendo um em projetos e outro em produção, a comunicação entre eles deve ser finamente ajustada, porque é dessa parceria que sairão os bancos com os melhores desempenhos.

Existem empresas que nunca contrataram um DBA. Não é raro encontrar empresas com servidores superdimensionados para bases que jamais tiveram qualquer tratamento ou manutenção, assim como também não é raro encontrar empresas que possuem servidores subdimensionados. No entanto, existem técnicas que podem ajudar a encontrar vários problemas e tratá-los rapidamente.

A configuração adequada de alguns itens do banco de dados pode garantir um excelente desempenho. Itens como auto crescimento dos arquivos de bancos, índices, fragmentação e shrink (diminuição dos arquivos de banco) são fáceis de configurar, requerem pouco esforço e dão uma excelente resposta.

Características diferentes, tratamentos diferentes

No geral, costuma-se classificar bancos de dados em três modelos diferentes:

1. Missão crítica: é um banco de dados de alta disponibilidade e pouco volume de dados.

Por exemplo, quando uma consulta ao saldo da conta corrente é feita, o banco de dados envolvido nessa consulta será um banco de missão crítica e necessariamente conterá apenas os dados do mês de competência, ou seja, apenas do mês corrente.

Os dados do último trimestre ficarão em um banco diferente e os dados históricos ficarão em um outro banco. Ao final do mês, os dados são migrados de um banco para o outro e o mês de competência ficará vazio.

Isso garante que haverá alto desempenho nas consultas de saldos e extratos e, talvez, um pouco menos de desempenho nas consultas do último trimestre. À medida que o período desejado aumenta, o desempenho tende a diminuir;

2. Grande volume: é um banco de dados que contém milhares de registros e suas tabelas e índices são enormes. Normalmente são usados para guardar dados históricos e que não sofrerão mais alterações, mas que com certeza, sofrerão muitas consultas. É nesse tipo de banco onde estão os dados históricos de uma conta corrente;

3. Grande concorrência: é um banco de dados que não chega a ter um grande volume de dados e que, às vezes, não tem a mesma característica de um banco de missão crítica, porém, é muito acessado para consultas e alterações diversas. Alguns exemplos são os bancos de indicadores econômicos ou um banco que registra dados de entrada e saída de funcionários. " [...] continue lendo...

Artigos relacionados