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