II - DI PUC-Rio

Propaganda
Tuning e Self-Tuning de
Bancos de Dados
Dr. José Maria Monteiro
Universidade de Fortaleza (UNIFOR)
[email protected]
Secretaria da Fazenda do Estado do Ceará – Sefaz-CE
[email protected]
1
Self-Tuning Não-Intrusivo
O
projeto
físico
inclui
(criação/remoção/reorganização):

a
seleção
e
manutenção
 das estruturas de índices e visões materializadas;
 as tabelas a serem particionadas e os tipos de particionamentos mais
adequados;
 a duplicação de estruturas físicas;
 a replicação de dados;
 A desnormalização de tabelas ;

Infelizmente..
 realizar o ajuste do projeto físico de forma manual tem se tornado uma
tarefa bastante complexa para as aplicações atuais.;
 requer um profundo conhecimento acerca dos detalhes de
implementação dos SGBDs, das características dos dados armazenados,
das aplicações e da carga de trabalho submetida ao SGBD;
 Soluções existentes são intrusivas;
2
1
Self-Tuning Não-Intrusivo


Uma Arquitetura Não-Intrusiva para a
Manutenção Automática do Projeto Físico de
Bancos de Dados
Principais Características:


Uma arquitetura não-intrusiva para a manutenção
automática e on-the-fly do projeto físico;
Pode modificar o projeto físico corrente (criando,
removendo ou recriando estruturas de acesso) reagindo
a alterações na carga de trabalho.
3
Self-Tuning Não-Intrusivo

O que é Configuração de Projeto Físico?


O que é uma Estrutura de Acesso?



Uma configuração C consiste em um determinado
conjunto de estruturas de acesso, existentes em um
determinado instante de tempo.
Uma estrutura de acesso consiste em um mecanismo
utilizado para acelerar o acesso aos dados.
Índices, Visões materializadas, etc.
Como manter uma Configuração de Projeto Físico
Adequada?

Problema NP-Completo.
4
2
A Arquitetura Proposta
5
Estágio Atual
6
3
Princípio de Funcionamento
7
Princípio de Funcionamento

Estrutura Hipotética ou Virtual


Uma estrutura hipotética (ou virtual) é aquela que existe
apenas na metabase do SGBD, ou seja, não existe
fisicamente.
Logo, uma estrutura hipotética não ocupa espaço em
disco e nem pode ser utilizada no acesso aos dados (um
índice hipotético ou uma visão materializada hipotética,
por exemplo).
8
4
Princípio de Funcionamento

Plano de Execução Hipotético ou Virtual

Um Plano de Execução Hipotético consiste basicamente
em plano de execução convencional, com as seguintes
diferenças:
 os índices utilizados nas anotações podem ser
hipotéticos;
 foi gerado a partir da manipulação de um plano de
execução real (ou seja, plano de execução gerado
através do processamento de uma consulta q
submetida ao SGBD).
9
Princípio de Funcionamento

Otimização Hipotética ou Virtual

Otimização hipotética consiste na manipulação de um
plano de execução real (ou seja, plano de execução
gerado através do processamento de uma consulta q
submetida ao SGBD), através da utilização de estruturas
hipotéticas (índices hipotéticos, por exemplo), buscando
gerar um plano de execução alternativo (plano
hipotético) com custo de execução menor que o plano
de execução original (real).
10
5
O Dbx
11
O Dbx
 Realiza a manutenção automática das estruturas
de índice;
 Pode ser utilizado com qualquer SGBD;
 Fornece drivers para PostgreSQL, Oracle e SQL
Server;
 Possibilita três modos de execução:
 Automático, Assistido e Monitoramento;
 Independe da localização do SGBD;
 100% Java;
12
6
Idéia Básica
 A idéia básica consiste em procurar substituir um
determinado sub-plano p por um sub-plano
alternativo e equivalente p’, obtido mediante a
utilização de índices hipotéticos;
 A partir da diferença entre o custo do sub-plano
original p e o custo do sub-plano hipotético p’ , é
possível inferir o benefício dos índices hipotéticos
utilizados;
13
Idéia Básica
select *
from lineitem l, orders o
where l.l_orderkey = o.o_orderkey
and l.l_partkey = 10 and o.o_orderkey > 3000
ECp = ECFS = Plineitem
Assuma agora que desejamos inferir o
que aconteceria se criássemos um novo
índice secundário i1 = (l partkey) na
tabela lineitem;
Ecp’ = ECSIS = HTi1 + FS(l_partkey; lineitem)
Bi1 = ECp – ECp’
14
7
Manutenção Pró-Ativa
 Manutenção Pró-Ativa da Configuração de Índices


Prever as características da carga futura
Realizar os ajustes de índices de maneira pró-ativa
 Contexto


Consultas “pesadas” (muito demoradas ou de custo elevado)
A criação dos índices adequados traria ganhos de desempenho
mesmo que a consulta fosse executada uma única vez, e que o
índice fosse excluído logo após sua execução
 Heurística de Benefícios e Consulta “Pesada”
15
Manutenção Pró-Ativa
 Arquitetura e Estratégia




Heurísticas de Benefícios
Rede Neural
Agentes de Software
Drivers (Independência de SGBD)
 Principais Agentes:


Agent for Proactive Index Maintenance for Very Heavy Queries
(APIM)
Scheduler Agent (SA)
16
8
Manutenção Pró-Ativa
Back
Propagation
17
Algumas Conclusões

DBA automatizado?



Resultados preliminares animadores



SIM! Vale a pena ...
Paper SQLmag: “Será o fim do DBA?”
Ferramentas de mercado
Academia: e.g. postgreSQL
Vários problemas em aberto


Sintonia de projeto físico
Grau de autonomia!
18
9
OBRIGADO!
19
10
Download