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