Tuning e Self-Tuning de Bancos de Dados Dr. José Maria Monteiro Universidade de Fortaleza (UNIFOR) monteiro@unifor.br Secretaria da Fazenda do Estado do Ceará Sefaz-CE monteiro@sefaz.ce.gov.br 1 Self-Tuning Não-Intrusivo O projeto físico inclui a seleção e manutenção (criação/remoção/reorganizaçã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? Uma configuração C consiste em um determinado conjunto de estruturas de acesso, existentes em um determinado instante de tempo. O que é uma Estrutura de Acesso? 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 EC p = EC FS = P lineitem Assuma agora que desejamos inferir o que aconteceria se criássemos um novo índice secundário i1 = (l partkey) na tabela lineitem; Ec p = EC SIS = HT i1 + FS(l_partkey; lineitem) Bi 1 = EC p EC p 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? SIM! Vale a pena... Paper SQLmag: Será o fim do DBA? Resultados preliminares animadores 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