Tuning em SGBDs – conceitos

Avatar


12 de abril3 min. de leitura

Fala pessoal, estou de volta em mais um artigo.

Neste artigo iniciarei uma sequência de conteúdos voltados para conceitos sobre Administração de Banco de Dados, assunto recorrente em provas e concursos.

Para dar início a esta série de artigos, vou iniciar pelo Tuning.

A tradução literal de “tuning” seria sintonia ou ajuste de alguma coisa para que funcione melhor. Um SGBD é um produto de software sofisticado e que a depender da carga de trabalho executada nele, se faz necessário realizar vários ajustes, tendo como principal objetivo melhorar a performance do tempo de resposta do banco de dados.

Mas, o que poderia ser “performance do banco de dados”?

Para responder a esta pergunta vamos fazer uma analogia em termos de oferta e demanda. Os usuários demandam informações do banco de dados. O SGBD fornece informação para aqueles que o pedem. A taxa entre os pedidos que o SGBD atende e a demanda para informação pode ser denominado performance de banco de dados.

Para que o Administrador de Banco de Dados (DBA) possa fazer a leitura de como está a performance do SGBD, ele pode fazer uso de recursos de informações estatísticas sobre diversos elementos que compõe um banco de dados específico, para a partir daí traçar estratégias de ação com a finalidade de melhorar a performance do SGBD.

Segundo Date:

A linha divisória entre o projeto físico de um banco de dados e sua sintonia é muito pequena. As mesmas decisões de projeto são revisadas na fase de sintonia (ou tuning), que é um ajuste continuado do projeto. As informações de entrada para o processo de sintonização incluem estatísticas relacionadas a diversos fatores. Em particular um SGBD pode coletar internamente as seguintes estatísticas: 

          • tamanho de tabelas individuais, 
          • número de valores distintos em uma coluna, 
          • número de vezes que uma consulta ou transação em particular é submetida/executada em um intervalo de tempo. Os tempos necessários para as diferentes fases de processamento de consultas. 

Vamos conhecer alguns fatores  que podem influenciar na performance do banco de dados, vejamos abaixo:

  • Workload (Cargas de Trabalho): são as requisições feitas ao SGBD que definem a demanda. Podem ser através de transações online, jobs batch, pesquisas ad hoc, dentre outros.
  • Throughput: define a capacidade do computador de processar os dados. Ele é uma composição de velocidade de I/O (entrada e saída), velocidade da CPU, capacidades de paralelismo da máquina e a eficiência do sistema operacional e o software básico envolvido.
  • Recursos:  É o hardware e ferramentas de software disponíveis do SGBD. Quando a demanda (workload) para um recurso particular é alta, pode acontecer a contenção.
  • Contenção : É a condição em que dois ou mais componentes do workload estão tentando usar o mesmo recurso em modos conflitantes (por exemplo, duas atualizações no mesmo dado de forma concorrente). Se a contenção cresce, o throughput diminui.
  • Otimização: A otimização em relação a banco de dados pode ser feita em diversas frentes, desde a criação ou alteração de índices, como também a otimização das consultas SQL (através do uso de boas práticas), essa muito cobrada nas provas de concursos e que vou explorar mais em outro artigo.

Neste sentido, podemos dizer que a performance de banco de dados então pode ser definida como otimização de recursos usados para aumentar throughput e minimizar a contenção, permitindo que o maior workload (carga de trabalho) possível possa ser processado.

Questões de Concurso.

(CEBRASPE/CESPE/MPU/ANALISTA DE INFORMÁTICA/2010)

Julgue os itens a seguir acerca de técnicas de análise de desempenho e otimização de consultas SQL em banco de dados.

O processo de otimização de consultas SQL aumenta o throughput do sistema e permite diminuir a contenção, fazendo que, no mesmo intervalo de tempo, necessariamente, seja requerida a execução de maior workload que na situação sem otimização.

Comentário:

A banca traz propositadamente um “peguinha na questão”, cuidado!

É verdade que quando ocorrem as otimizações (tuning) em consultas SQL, ocorre um aumento no throughput, ocasionando uma redução nas contenções e com isso pode aumentar as cargas de trabalho (workload). O peguinha da questão está em dizer que “necessariamente” o workload tem que aumentar e “no mesmo intervalo de tempo”, pois não temos garantias (apesar que se espere por isso) que haja aumento do workload e pior ainda que este seja feito no mesmo intervalo de tempo em que ocorra a contenção.

Gabarito: Errado

É isso pessoal, vou ficando por aqui e desejo ótimos estudos e até o próximo artigo, abração 😉 .

Fonte: C.J. Date: Introdução a Sistemas de Bancos de Dados

Prof. Luis Octavio Lima

Avatar


12 de abril3 min. de leitura