sintonia de banco de dados hélder manoel lima e silva - hmls - hélder manoel lima e silva - hmls...
Post on 19-Apr-2015
110 Views
Preview:
TRANSCRIPT
sintonia de banco de dados
hélder manoel lima e silva
- hmls -
Hélder Manoel Lima e Silva - hmls
SISTEMAS DE GERENCIAMENTO DE
BANCO DE DADOS
sintonia de banco de
dados
sintonia de banco de dados
hélder manoel lima e silva
- hmls -
Visa melhorar o tempo de resposta na base de dados;
Exige conhecimento da arquitetura, SGBD, projeto do BD;
Sintonia x Otimização de consultas;
sintonia de banco de dados
hélder manoel lima e silva
- hmls -
DESEMPENHOO QUE É?eficiência com que um sistema de computação atinge seus objetivos
COMO MEDIR?1. modelagem analítica: não precisa da implantação real do sistema, porém simplificações são necessárias e podem comprometer a qualidade e generalidade dos resultados. 2. simulação: permite resultados mais precisos, mas, exige maior esforço e conhecimento de ferramentas.3. monitoramento: pode ser aplicado apenas em sistemas já existentes podendo gerar medições mais realistas, todavia, se constitui em carga extra para o sistema
sintonia de banco de dados
hélder manoel lima e silva
- hmls -
SINTONIA MANUALatividade do DBA: tarefa complexa pela necessidade de compreensão dos algoritmos utilizados pelo sistema e pela possibilidade de inter-relações entre os ajustes
SINTONIA AUTOMÁTICAcenário ideal: sistemas alcançam desempenho adequado sem necessidade de ajuste manual
sintonia de banco de dados
hélder manoel lima e silva
- hmls -
PRINCIPAIS ETAPAS DE AVALIAÇÃO DE UMA CONSULTA:
Verificação da sintaxeErros sintáticos são detectados
Verificação de semânticaverifica se os objetos utilizados no comando SQL existem,
estão acessíveis para o usuário, e foram aplicados corretamente.
PROCESSAMENTO E OTIMIZAÇÃO DE CONSULTAS
sintonia de banco de dados
hélder manoel lima e silva
- hmls -
Reescrita de queryReescrita do comando SQL em uma
representação mais adequada para a manipulação do SGBD
Otimização de plano de acessoSimplificação do comando SQL em unidades mais
simples para que o SGBD seja capaz de mapear isoladamente para suas rotinas básicas
PROCESSAMENTO E OTIMIZAÇÃO DE CONSULTAS
sintonia de banco de dados
hélder manoel lima e silva
- hmls -
Geração de códigomapeamento do comando SQL em rotinas básicas do SGBD
Complexidade NP (não é possível determinar solução ótima)
PROCESSAMENTO E OTIMIZAÇÃO DE CONSULTAS
sintonia de banco de dados
hélder manoel lima e silva
- hmls -
ÍNDICES visam permitir acesso mais rápido aos dados usualmente mantidos em estruturas de árvores B+
PRINCIPAIS TIPOS1. não cluster: ponteiros para cada uma das tuplas da tabela de
cada um dos valores indexados. dados separados dos índices.
2. cluster: nas folhas, alem das chaves, as tuplas correspondentes.
sintonia de banco de dados
hélder manoel lima e silva
- hmls -
1. varredura seqüencial (full table scan): leitura de todas as páginas do disco que contém dados referentes a uma tabela
2. busca baseada em rowid: busca a tupla sem percorrer toda a tabela.
3. varredura indexada única: o índice é percorrido para a obtenção de informações referentes a uma única tupla.
4. varredura indexada por faixa de valores : uma faixa de valores do índice é percorrida na busca por um conjunto de um ou mais valores da chave
MÉTODOS DE ACESSO
sintonia de banco de dados
hélder manoel lima e silva
- hmls -
Além dos métodos de acesso, outras operações são necessárias para obter resultados a partir de comandos SQl como junção e ordenação.
ALGORITMOS PARA IMPLEMENTAÇÃO
1. Laços aninhados
2. Ordenação fusão
3. Junção hash
JUNÇÃO E ORDENAÇÃO
sintonia de banco de dados
hélder manoel lima e silva
- hmls -
OUTRAS CLÁUSULAS SQL SÃO RESOLVIDAS POR OPERAÇÕES DE ORDENAÇÃO
Order by Group by Union
sintonia de banco de dados
hélder manoel lima e silva
- hmls -
OTIMIZAÇÃO POR CUSTO E POR REGRAS Para a escolha das operações a serem utilizadas e montagem dos planos de acesso devem-se tomar decisões baseadas em custo ou regras.
REGRAS 1. utilizam um conjunto de regras para definir a ordem das operações.2. operações mais restritivas devem ser realizadas antes.
sintonia de banco de dados
hélder manoel lima e silva
- hmls -
OTIMIZAÇÃO POR CUSTO E POR REGRAS
CUSTO1. Um custo é atribuído a cada operação
2. O plano escolhido é o que apresentar menor custo total.
sintonia de banco de dados
hélder manoel lima e silva
- hmls -
select nome from funcionário
Resultado
Varredura completa da
tabela
select nome from funcionário
Where matrícula = 10
Resultado
Busca baseada em rowid
Varredura indexada única
B
A
select e.nome, d.nome from empregado e inner join departamento d on e.depnum = d.num order by e.nome
Resultado
Ordenação
Junção por laços aninhados
Varredura indexada única em
índice cluster (tabela
departamento)
Varredura indexada
completa em índice cluster
(tabela empregado)
C
sintonia de banco de dados
hélder manoel lima e silva
- hmls -
SINTONIA Alterações visando melhor desempenho na execução de um comando ou acréscimo da vazão (throughput) do SGBD.
1.Essencial conhecimento dos planos de acesso e como o SBGD os monta2.Reduzir operações de I/O3.Reescrita de comandos4.Dicas
sintonia de banco de dados
hélder manoel lima e silva
- hmls -
SINTONIA
1.Reescrita de Comandos
Comandos diferentes resultados iguais
Performances diferentes
sintonia de banco de dados
hélder manoel lima e silva
- hmls -
select distinct
matricula,nome from
empregado
select matricula,nome from
empregado
A
select matricula,no
me from empregado e
inner join departamento
d on e.depnum = d.num where d.num = 5
select matricula, nome from
empregado e where
e.depnum = 5
B C
select depnum,count(
*) from empregado e
group by depnum having
depnum > 5 select and
depnum < 10
select depnum,count(*
) from empregado e
where depnum >5 and depnum <10 group by
depnum
sintonia de banco de dados
hélder manoel lima e silva
- hmls -
CONSULTAS E SUB-CONSULTAS
Não correlacionadas >>> tendem a não utilizar índice na sub-consulta
Correlacionadas >>> referenciam atributo das tabelas da consulta externa
Junções >>> usualmente, o melhor desempenho
sintonia de banco de dados
hélder manoel lima e silva
- hmls -
sintonia de banco de dados
hélder manoel lima e silva
- hmls -
DICASindicam uma operação que deve ser realizada dentro do plano de acesso que não foi determinada quando o plano foi gerado pelo otimizador.
EXEMPLOSSelect /* + INDEX(nome_tabela nome_indice) */ Coluna1, coluna2 from tabelaSelect /* + FULL(nome_tabela) */ coluna1,coluna2 from tabela
sintonia de banco de dados
hélder manoel lima e silva
- hmls -
FATOR DE FILTRO
Percentual de tuplas que satisfazem um predicado SQL
Baseado em Estatísticas coletadas pelo SGBD
Operadores AND ,OR
sintonia de banco de dados
hélder manoel lima e silva
- hmls -
ÍNDICES COMPOSTOS
IS NULL, NOT LIKE, NOT EXISTS: impedimento do uso de índices
USO DE ÍNDICES COMPOSTOS
CAUSA PROBLEMAS SE CRIADOS COM BASE EM ATRIBUTOS ATUALIZADOS FREQUENTEMENTE: necessidade de se atualizar os índices dos atributos que sofreram atualização.
sintonia de banco de dados
hélder manoel lima e silva
- hmls -
SINTONIA DE PROJETO
Problemas de performance com junções >>> Desnormalização
Espaço em disco abundante>>> Views materializadas
Particionamento
sintonia de banco de dados
hélder manoel lima e silva
- hmls -
Manter operações mais necessárias em memória principal (minimizar leitura física)
Hit Ratio = nº de leituras lógicas – nº de leituras físicas X 100 nº de leituras lógicas
1. Indicador de acertos na memória.2. Pode ser utilizado como alerta para necessidade de sintonia.
HIT RATIO
sintonia de banco de dados
hélder manoel lima e silva
- hmls -
Transações longas >>> Dados bloqueados
Padrão dos SGBD Read Commited (2PL restrito).
BLOQUEIOS
sintonia de banco de dados
hélder manoel lima e silva
- hmls -
1. Transações longas >>> Criação de estruturas de apoio para acelerar buscas
2. Coleta de estatísticas sobre dados armazenados3. Alocação dos dados em disco em memória4. Controle de quantas transações serão atendidas
pelo sistema e qual tempo de resposta
AUTO-SINTONIA
sintonia de banco de dados
hélder manoel lima e silva
- hmls -
1. Definição do ambiente em que o componente de auto-sintonia esta inserido. (local ou global)
2. Modificação do sistema através de um ciclo de controle de realimentação
3. Coleção de estatísticas e informações de forma que haja pouco impacto no desempenho do sistema
4. Utilização de modelos matemáticos e estimativas para prever o desempenho futuro do sistema.
5. Realização de ajustes simples online e ajustes complexos offline.
6. Substituições de políticas de sintonia por decisões de política de uso
PROPOSTAS PARA AUTO SINTONIA
sintonia de banco de dados
hélder manoel lima e silva
- hmls -
Interações entre componentes podem causar desestabilização do sistema provocadas por
sintonia em um recurso particular.
1. Sistemas que são projetados para satisfazer requisitos de desempenho
<< Projetar sistemas mais simples Possibilidade de modelar formalmente comportamento e ajuste
<< Nenhum sistema implementado até hoje2. Sistemas aos quais são acrescentados módulos de
auto-sintonia<< Calcular vantagens da execução de cada
possível sintonia escolher a melhor e intensidade da mudança.
<< Incluído no SQL Server (Index tuning wizard)Projetar sistemas mais simples Possibilidade de modelar formalmente comportamento e ajuste
AUTO-SINTONIA GLOBAL
sintonia de banco de dados
hélder manoel lima e silva
- hmls -
1. Projeto físico >> escolher a melhor organização física para um dado esquema
2. Alocação de dados >> determinar como deve-se alocar e realocar fragmentos de arquivos ou relações de modo que o equilíbrio de carga seja o menor possível
3. Controle de carga >> evitar que a vazão caia devido a conflitos de bloqueio
4. Substituição de páginas >> manter em memória as páginas mais acessadas do banco de dados
5. Ajuste de buffers >> buscar a quantidade de buffers ideal de buffers distintos para que o desempenho aumente
6. Refino de estatísticas >> definir quais estatísticas devem ser criadas no banco de dados
AUTO-SINTONIA LOCAL
sintonia de banco de dados
hélder manoel lima e silva
- hmls -
1. Agente de software integrado ao SGBD
2. Coleta de informações sobre consultas ao SGBD
3. Com base em uma heurística, decide quando deve criar ou destruir índices.
AUTO-SINTONIA ÍNDICE
sintonia de banco de dados
hélder manoel lima e silva
- hmls -
fim
top related