Self ou Auto-tuning?

Tamanho: px
Começar a partir da página:

Download "Self ou Auto-tuning?"

Transcrição

1 Self-Tuning e outros Self-* em SGBDs Tutorial SBBD 2009 Sérgio Lifschitz Departamento de Informática Pontifícia Universidade Católica do Rio de Janeiro (PUC-Rio) - Brasil Self ou Auto-tuning? Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 1

2 Tuning de Bancos de Dados Sintonia ou ajuste fino Realizar ajustes em um sistemas de banco de dados de forma a obter um melhor tempo de resposta e/ou aumentar a vazão (throughput) para determinada aplicação => Buscar um bom desempenho em um sistema de banco de dados existente Hipótese: HW e SW não mudam! Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 Mínimo de 500GB VLDBs = terabytes Idéia de um VLDB cartõesde crédito, fast mail DHL, FEDEX 5K tabelas e índices+ 2K visões Tanto BD Produção como ODS Algumas tabelas com mais de 50M tuplas 10 a 20 consultas por minuto, 12K usuários (200 simultâneos) Basic SAP R/3 : 16K tabelas e 19K índices Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 2

3 Problema típico (1)insert into VENDAS(prodNum, data, qtd, valor) values (4, current_timestamp, 20, 348); (2)select prodnum, data, sum(valor) as total from VENDAS where valor > and data between and group by prodnum, data; Quais os índices para uma aplicação que contém estas (e possivelmente muitas outras ) cláusulas SQL? Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 Problema simples? update venda set valor = valor -1 where valor > ; Índices ajudam ou atrapalham? O povo diz: índices são bons para consultas e ruíns para atualizações Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 3

4 Princípios de Sintonia (Shasha) Pensar globalmente, fixar localmente 80 x 20: qual consulta é responsável? Particionar para resolver gargalos Espaço, transações Start-up tem custo alto, execução não Orientado a conjuntos! Ao servidor o que é do servidor triggers Esteja pronto para trade-offs Cobertor curto! Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 Problemas de sintonia Seleção de índices Alocação de dados Controle de carga (ajuste de MPL) Política de substituição de páginas em memória Ajuste de tamanhos/quantidades de buffers Refino automático de estatísticas Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 4

5 Sintonia fina Dificuldades: Perceber que um recurso está sendo mal utilizado => monitoramento é parte fundamental do processo Localizar e entender a verdadeira fonte do problema => Maisde 90% do tempo para resoluçãode problemasde desempenhoé gasto no diagnóstico. Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 O que é preciso saber? A atividade de tuning envolve: Hardware e sistemas operacionais Gerência de memória e acesso a discos Controle de concorrência e recuperação Uso de índices adequados Otimização e reescrita de consultas Projeto de banco de dados adequado Ajuda conhecer SGBDs específicos! Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 5

6 Auto-Sintonia (Self-Tuning) Capacidade de auto-ajuste dos SGBDs ao ambiente existente para obtenção de melhor desempenho Alguns SGBDs comerciais possuem implementação de algumas características Trabalhos científicos: além dos índices e.g. projeto físico, memória,... Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 Tuning vs Self-tuning Sistemas de bancos de dados se tornam cada vez mais utilizados (commodity?) Sistemas de bancos de dados exigem profissionais especializados para a sua administração DBAs com anos de experiência podem levar anos e não resolver um problema! Será o fim do DBA (SQLmag #8) Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 6

7 Self-tuning Um grande (e já antigo!) desafio para a comunidade acadêmica: tornar os sistemas computacionais mais autônomos Asilomar Report on Database Research (1998) IBM s Autonomic Computing Manifesto (2001) The Claremont Database Research Self- Assessment Meeting (2008) Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 Self-* Databases Por que não automatizar ainda mais? Self-tuning histograms Self-healing Automatic storage Cloud Data Self-Manageability Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 7

8 Agenda o Introdução e Motivação o Fundamentos para Sintonia Fina o Planos e Métodos de Acesso o Operadores Relacionais e Reescrita de Consultas o Self-tuning o Visão Geral do Estado da Arte o Abordagens PUC-Rio o Comentários Finais Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 Planos de Execução É o resultado da otimização É especificado no plano de execução: Ordem de acesso às tabelas Ordem de operações seleção, projeção e junção Índices utilizados Tipos de junção Ordenações Tabelas intermediárias Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 8

9 QEP: Query Execution Plan Exemplo: SELECT endereço, data-nascimento FROM empregado WHERE nome = Chico Cesar Execution Plan SELECT STATEMENT Optimizer=CHOOSE 1 0 TABLE ACCESS (BY INDEX ROWID) OF 'EMPREGADO' 2 1 INDEX (UNIQUE SCAN) OF 'PK_EMP' (UNIQUE) Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 Métodos de Acesso Tipos básicos de operação: Varreduras seqüenciais (full scan) Indexadas (index scan) Implementação de operadores Junções, Uniões Ordenações e eliminação de duplicatas Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 9

10 Junções Principais algoritmos: Laços Aninhados (Nested Loops Join) Ordenação/Intercalação (Merge Join) Hashing (Hash Join) Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 Nested Loops T1 Outer Table T2 Inner Table Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 10

11 Merge Join Ordenada Ordenada 70 Outer Table Inner Table Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 Hash Join Build Phase f(chave) Outer Table Probe Phase Inner Table Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 11

12 Ordenação Operação básica para diversas outras operações físicas Resolve (usualmente) várias cláusulas: Order By, Group By, Distinct, Union, Minus, Operação cara Se o conjunto a ser ordenado não cabe em memória, pode ser ainda mais cara! Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 Fator de Filtro Fator de filtro de um predicado: percentual de linhas da tabela que satisfazem determinado predicado. Utilizado pelo Otimizador para: estimar tamanho da tabela resultado decidir sobre uso de índices e outras estratégias de acesso Calculado com base nas estatísticas existentes Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 12

13 Fator de Filtro Fator de filtro de um predicado: número entre 0 e 1: 0 FF 1 FF 0 poucas linhas FF 1 todas as linhas da tabela Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 Fator de Filtro Estatísticas: Tabela de Empregados com linhas Coluna Sexo: 2 valores distintos. Estimativas: FF(M) = 0.5, FF(F) = 0.5 Select nome from empregados where sexo = M Estima retorno de 5000 linhas Não usa índice Select nome from empregados where sexo = F Estima retorno de 5000 linhas Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 13

14 Fator de Filtro Estatísticas com a presença de Histograma: otimizador pode perceberdistribuição não-uniforme: tabela de Empregados com linhas: coluna Sexo: distribuição não uniforme. estatísticas de distribuição não uniforme: M: empregados F: empregados FF(F) = 0.1 Para consulta sexo = `F`, otimizador pode decidir utilizar o índice da coluna sexo Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 Fator de Filtro x Índices O fator de filtro influencia diretamente na utilização de índices => quando consulta retorna poucas linhas e existem índices adequados, otimizador pode utilizar índices; Poucas linhas depende de SGBD para SGBD e de versão para versão. Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 14

15 Fator de Filtro Predicado composto: AND select * from empregados where dept = 600 and sexo = m and cargo = pgmr FF(sexo) = 0.9 FF(dept) = 0.2 FF(cargo) = 0.1 FF = 0.9 * 0.2 * 0.1 = Estimativa para a tabela resultado: 180 linhas Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 Fator de Filtro O Otimizador pode ser enganado em alguns casos em predicados correlacionados: select * from empregados where cidade = rio de janeiro FF = 1 / R = / = 100 linhas select * from empregados where cidade = rio de janeiro and estado = rj and pais = brasil FF = (1 / 28) * (1 / 1.000) * (1/10) R = / = 3,5 linhas Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 15

16 Tuning Problema está em uma consulta apenas... Tentar primeiro métodos com impactos locais reescrita da consulta Criação de índices, desnormalização do esquema e reordenação de transações: podem afetar todo o sistema! Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 Reescrita (1/5) Evitar having se pudermos utilizar where. Where elimina linhas antes da operação de agrupamento e facilita a utilização de índices na comparação Select max(salario) From empregado Group by depnum Having depnum = 100 Select max(salario) From empregado Where depnum = 100 Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 16

17 Exemplo Oracle: Reescrita (2/5) Select max(salario) From empregado Group by depnum Having depnum = Operation Name Rows Bytes Cost SELECT STATEMENT FILTER SORT GROUP BY TABLE ACCESS FULL EMPREGADO 100K 1M 102 Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 Reescrita (3/5) Exemplo Oracle Select max(salario) From empregado Where depnum = 100 Custo cai de 360 para 2! Queda para apenas 0,5% do original!!! Operation Name Rows Bytes Cost SELECT STATEMENT SORT AGGREGATE 1 16 TABLE ACCESS BY INDEX RO EMPREGADO 100 1K 2 INDEX RANGE SCAN IDX_EMP_DEPNUM Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 17

18 Reescrita (4/5) Eliminar DISTINCT Verificar a lógica da aplicação Para consultas em uma única tabela, verificar se o resultado da consulta contém alguma coluna definida como chave única Para consultas com junções verificar o tipo de junção, as colunas da junção e as colunas resultado Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 Reescrita (5/5) Exemplo Oracle: select distinct ident, nome from empregado; Operation Name Rows Bytes Cost SELECT STATEMENT 100K 2M 937 SORT UNIQUE 100K 2M 937 TABLE ACCESS FULL EMPREGADO 100K 2M 102 select ident, nome from empregado; Custo = 102 Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 18

19 Outras Atividades de Tuning Uso de hints Cuidadoso! Operações vs instruções SQL: E.g. distinct --> internal sort Ausência de PKs e/ou FKs Full scan only Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 Ainda Atividades e Causos Projeto físico: Clusterização + indices invertidos Mudança na estrutura de persistência Independência física! Ferramentas de apoio ao DBA E.g. Veritas, Quest Monitoramento, alertas, consoles gráficos... Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 19

20 Técnicas de Sintonia Métodos com maior abrangência: Criação/destruição de índices Utilização de índices cluster Visões materializadas Escolha do tamanho adequado de bloco Posicionamento dos arquivos em disco Particionamento de objetos Ajuste das áreas de memória Ajuste dos parâmetros do SGBD... Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 Agenda o Introdução e Motivação o Fundamentos para Sintonia Fina o Planos e Métodos de Acesso o Operadores Relacionais e Reescrita de Consultas o Self-tuning o Visão Geral do Estado da Arte o Abordagens PUC-Rio o Comentários Finais Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 20

21 Self-Tuning de índices Tuning de índices: Índices podem auxiliar em consultas Índices podem ser prejudiciais a atualizações Quais índices criar? No self-tuning, dificuldade adicional: quando criar ou destruir? Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 Sistemas Auto-sintonizáveis por Projeto RISC-style Database System Autores: Chaudhuri (Microsoft, AutoAdmin) e Weikum (Universidade de Saarland) Idéia de criar sistemas de bancos de dados com componentes menores, especializados Exemplo: gerente de dados com capacidade SPJ (select-project-join) Apenas position paper Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 21

22 Sistemas Auto-sintonizáveis por Projeto Projeto COMFORT ETH em cooperação com UBS Observar-predizer-reagir Modelagem formal para determinar métricas Auto Tune IBM T. J. Watson Research Centre Agente para controle inteligente Independente da tecnologia monitorada Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 Seleção de Índices Várias gerações de soluções: Escolha através de regras especializadas (Rozen & Shasha, outros) Criação de configurações de índices virtuais e uso do otimizador para custeamento (Microsoft Index Wizard, muitos outros) Enumeração de índices virtuais e uso do otimizador para escolha (DB2 Index Advisor) Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 22

23 Alocação de Dados Mudanças nos padrões de acesso aos dados pode sobrecarregar discos ou nós de processamento A idéia é mover arquivos ou fragmentos de arquivos dinamicamente entre os nós de processamento Vistas propostas para sistemas shared nothing (p. ex., clusters de PCs, ab+-tree) e sistemas shared memory (p. ex., arrays de discos; projeto COMFORT, disk cooling) Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 Controle de Carga Num sistema que usa locks, muitas transações concorrentes podem causar conflitos que levam a uma redução da vazão do sistema A idéia é ajustar dinamicamente o MPL do sistema Observação de métrica de conflitos (projeto COMFORT, conflict ratio) Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 23

24 Substituição de páginas Será LRU a melhor política de substituição de páginas para todas as variações de carga de trabalho? A idéia é entender quais páginas ficam mais populares à medida que a carga de trabalho no sistema varia LRU-K: P. O Neil, E. O Neil, G. Weikum (projeto COMFORT) 2Q: melhoria de desempenho de LRU-K, proposta por Johnson e Shasha Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 Ajuste de Buffers Alguns sistemas permitem que criemos vários buffer pools, com diferentes objetos (tabelas, índices) associados a cada um Como dividir os objetos em buffer pools de forma a melhorar o desempenho? É possível fazer isto dinamicamente? Configuração e seleção de tamanho de buffer pools para o DB2 Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 24

25 Refino de estatísticas Estatísticas são um fator determinante da qualidade dos planos escolhidos por otimizadores de custo A idéia é atualizar as estatísticas do sistema com base no resultado de consultas que estão sendo executadas Microsoft Self-tuning Histograms DB2 LEO LEarning Optimizer Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 Self-Tuning Cases Pausa para Exemplos (com FILMES ) Oracle ADDM SQL Server PostgreSQL by DI PUC-Rio Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 25

26 Visão geral Estado da Arte Tema não tão novo (Stonebreaker, 74) Ajuste automático de índices apenas Problema NP-hard (Shapiro, 83) MS: projeto AutoAdmin Chaudhuri + Narasayya (VLDB conf, 97) Criação de índices hipotéticos Seleção de índices candidatos MS SQL7 index tuning wizard Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 MS SQL Wizard Visões materializadas e particionamento dividir e conquistar para what-if Workload adquirido Conjunto de colunas úteis das tabelas Seleção de candidatos Merging Enumeração de alternativas Finalmente: recomendação ao DBA Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 26

27 Ex. SQL Server Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 Oracle ADDM Dias e Benoit Automatic Database Diagnostic Monitor Feedback loop control Inspirado em Weikum + projeto Comfort Estatísticas e observação Diagnóstico: advisors (memória, espaço) Dbtime graph: drill-down diagnóstico E.g. raiz capacidade I/O dimensão buffer cache Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 27

28 IBM DB2 Lohman, Lightstone, Zilio Autonomic computing project Idéias principais: Semimpacto na coletade workload LEO: LEarning Optimizer compara estimativas com resultado da execução Também feedback control loop Virtual indexes Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 Pot-pourri Adaptive query-processing (Paton et al) Modificação dinâmica de planos Self-* storage (Ganger et al, CMU) Administraçãoautomática para proteção, planejamento de capacidade, reparo, etc Self-tuning page cleaner (Wang,Bunt) DB2 buffer pool P2P indexing (Garcia-Molina) Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 28

29 Cloud Data: o que vem por aí? CIDR Amazon s SimpleDB, SQL Server Data Services Self-Manageability obrigatório! Oportunidades: API do servidor, Backend e Utilitários Novos desafios: Alta distribuição de dados Workload imprevisível Self-managing - sem maintenance window Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /8057 DI PUC-Rio SGBD PostgreSQL (v7 e v8) Primórdios: Rogério e idéia de agentes Heurística de seleção de índices Índices hipotéticos com explain Captura automática de carga Componente create, drop e reindex Planos hipotéticos Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 29

30 Atividades de Self-Tuning Coleta de informações (CI) monitoramento do subsistema onde está sendo realizado a auto-sintonia; Avaliação da situação (AS) avaliação da necessidade de alterações no sistema considerando as medidas da etapa anterior e métricas relacionadas ao sistema; Enumeração de possíveis alterações (EPA) detectada ineficiência de um sub-sistema, são enumeradas possíveis alterações a serem realizadas; Realização de alterações (RA) a partir das alternativas enumeradas, alterações nos mais diversos componentes do SGBD podem ser realizadas; Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 Trabalhos Correlatos Projeto SMART (Self Managing and Resource Tuning) do Centro de Pesquisas IBM Almaden em parceria com os Laboratórios de Toronto e do Vale do Silício; DB2: db2advis Projeto AutoAdmin da Microsoft Research; Oracle; PostgreSQL; Oracle 10g: Automatic Database Diagnostic Monitor Pg_autovacuum Grupo de auto-sintonia em SGBDs do Departamento de Informática PUC-Rio. SQL Server 2005: Database Tuning Advisor Índices Hipotéticos Survey Auto-Sintonia Global Heurística de Benefícios 60/22 Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 30

31 Possível Classificação Auto-sintonia de bancos de dados Auto-sintonia global Auto-sintonia local Auto-sintonia global por construção Auto-sintonia global por adaptação Projeto Físico Alocação de dados Controle de carga Substituição de páginas Ajuste de buffers Refino de estatísticas Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 Índices hipotéticos Pausa para tutorial extra: (disponível em PostgreSQL by DI PUC-Rio Referência ao filme anterior Comandos create e drop hypothetical Explain hypothetical Ferramenta de what-if PGcon2009: hacker talk Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 31

32 Self-Tuning Modelo local SGBD Componente de Auto-Sintonia Avaliação de métricas e alterações na execução (AS e EPA) Coleta de informações preliminares (CI) Envio de informações sobre alteração na execução de tarefa (RA) Coleta de informações sobre alterações (CI) Coleta de informações sobre execução final (CI) Componente N Componente N + 1 Componente M Componente M + 1 Área sendo ajustada Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 SGBDs baseados em Agentes Três arquiteturas Lifschitz e Macedo, CLEI 2001 Arquitetura em Camadas Sistema de Agentes Arquitetura Integrada SGBD Arquitetura Embutida SGBD SGBD Sistema de Agentes Componentes do SGBD Sistema de Agentes Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 32

33 Agentes de software Autonomia: capacidade de agir para atingir um objetivo sem intervenção humana Reatividade: capacidade de responder a mudanças para atingir objetivos; Pró-atividade: agir para atingir seus objetivos, antecipando-se a mudanças no ambiente; Sociabilidade: capacidade de interagir com outros participantes do ambiente; Agente em Camadas Mobilidade Tradução Colaboração Sensor Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 Ação Raciocínio Crença Agentes e Self-Tuning Agente em camada e etapas do Self-tuning Outras funcionalidades Decisões sobre colaboração com outros agentes, preparação e envio de mensagens. Recebimento e análise prévia de mensagens de outros agentes Armazenamento de estatísticas, decisões tomadas e crenças Agente Mobilidade Tradução Colaboração Ação Raciocínio Crença Sensor Etapas da Auto-Sintonia Realização de Alterações Avaliação da Situação e Enumeração de Possíveis Alterações Coleta de Informações Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 33

34 Index Self-tuning based on Differences On-line heuristic Evaluate commands as they are submitted Estimate alternative indexing solutions hypothetical indexes Adapt index design on-the-fly Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 Index Self-tuning e benefícios Query Evaluation Strategy: Benefit of Hypothetical Index = Cost of Query with Actual Indexes Cost of Query with Hypothetical Indexes; Update Accumulated Benefit of Hypothetical Index; If (Accumulated Benefit of Hypothetical Index > Cost to Create Hypothetical Index) Then Reset Accumulated Benefit of Hypothetical Index; Materialize Hypothetical Index; End if; Updates follow similar rules, but consider index destruction Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 34

35 Agent based Self-tuning Architectures Agent architecture Integration architecture Pros & Cons Intrusive, but well delimited On-line: no human intervention, but limited time to search solution space Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 Agent based Self-tuning Integrando o agente de sintonia com PostgreSQL Postmaster Postgres Statement Processor Optimizer Built-in Agent (Postgres) Queue Sensory Beliefs Reasoning Action Statement Processor Postgres Statement Processor Optimizer Storage Structures Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 35

36 Questões de implementação Consulta Ciclo de uma operação SGBD Sensor Query Rewrite Otimização do Plano de Acesso SGBD Agente de Self-tuing Agente de Self-tuning Geração de código Crença Estatísticas SGBD Agente de Self-tuning Mobilidade Solicitação de montagem de plano segundo uma dada configuração Geração do Plano de Acesso SGBD Agente de Self-tuning Raciocínio Tomada de decisão com possível enumeração de índices propostos ou decisões sobre imediata/posterior criação/destruição de índices SGBD Agente de Self-tuning Mobilidade Otimização do Plano de Acesso Geração de código Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 SGBDs baseados em Agentes e Self-Tuning Sintonia global com agentes SGBD Envio de informações a outros agentes de Self-tuning Informações provenientes de outros agentes de Self-tuning Agente de Self-tuning Local Troca de informações Área sendo ajustada Componente N Componente N + 1 Gravação de dados Componente M Lembrança de operações passadas (dados persistentes) Leitura de dados Componente M +1 Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 36

37 Arquitetura Sintonia Global Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 Questionamentos Dada uma solicitação para criação ou destruição de um índice, agente de selftuning de índices pode indicar que: Nenhum índice é benéfico/ prejudicial para a consulta ou operação de atualização; A criação/destruição de um índice já foi determinada e será realizada no momento adequado; Índices já foram criados/destruídos antes da solicitação ser recebida; Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 37

38 Trabalhos recentes Reindex automático Carga menos estávelque TPC-C e mesmo assim resultados positivos Uso de evaluate, getsize e fillfactor Tudo isto: artigo SBBD 2009 trilha pesquisa Planos hipotéticos tese J.M. Monteiro 2008 Heurísticas não-intrusivas Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 Agenda o Introdução e Motivação o Fundamentos para Sintonia Fina o Planos e Métodos de Acesso o Operadores Relacionais e Reescrita de Consultas o Self-tuning o Visão Geral do Estado da Arte o Abordagens PUC-Rio o Comentários Finais Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 38

39 Comentários Finais Regras básicas x experiência Algumas regras indicam o caminho a tomar. O otimizador pode gerar situações ilógicas... Experiência e criatividade ajudam muito! Sempre testar as soluções adotadas em ambiente de simulação! Sintonia automática: será a solução? Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 Trabalhos em curso e futuros Ajuste fino de índices hipotéticos Acompanhamento de auto-sintonia Visualização de hipotéticos Iminência de criação Ferramenta de planos hipotéticos Patch para PostgreSQL Uso em BD reais e volumosos Versão 8.x e benchmarks públicos Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 39

40 Agradecimentos Ana Carol, Andrea e Zé Maria & RogérioCosta, Maíra, Marcos Salles, Anolan, Morelli, Isabel + Angelo, Javam e Marcus Sampaio Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 Perguntas? OBRIGADO! Este tutorial é dedicadoà memóriado professor e amigo Mauro Biajiz Self-Tuning e outros Self-* em SGBDs Sérgio Lifschitz DI PUC-Rio Tutorial SBBD /80 40

Problema típico. Problema simples? Índices ajudam ou atrapalham? Tuning de Bancos de Dados. Idéia de um VLDB. Princípios de Tuning (Shasha)

Problema típico. Problema simples? Índices ajudam ou atrapalham? Tuning de Bancos de Dados. Idéia de um VLDB. Princípios de Tuning (Shasha) Sérgio Lifschitz Departamento de Informática Pontifícia Universidade Católica do Rio de Janeiro (PUC-Rio) - Brasil sergio@inf.puc-rio.br Tuning de Sintonia ou ajuste fino Realizar ajustes em um sistemas

Leia mais

Tuning e Self-Tuning de Bancos de Dados. José Maria Monteiro

Tuning e Self-Tuning de Bancos de Dados. José Maria Monteiro José Maria Monteiro Universidade de Fortaleza (UNIFOR) Secretaria da Fazenda do Estado do Ceará (SEFAZ-CE) monteiro@unifor.br monteiro@sefaz.ce.gov.br Contexto VLDB Vários GB de dados terabytes ou terrorbytes

Leia mais

2 Auto-sintonia de Bancos de Dados e Agentes de Software

2 Auto-sintonia de Bancos de Dados e Agentes de Software 2 Auto-sintonia de Bancos de Dados e Agentes de Software A uso da abordagem de agentes de software 1 pode trazer benefícios a áreas de aplicação em que é necessário construir sistemas autônomos, ou seja,

Leia mais

Tuning e Self-Tuning de Bancos de Dados

Tuning e Self-Tuning de Bancos de Dados 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

Leia mais

Marcos Antonio Vaz Salles. em Bancos de Dados. Mestrado em Informática DEPARTAMENTO DE INFORMÁTICA

Marcos Antonio Vaz Salles. em Bancos de Dados. Mestrado em Informática DEPARTAMENTO DE INFORMÁTICA Marcos Antonio Vaz Salles Criação Autônoma de Índices em Bancos de Dados DISSERTAÇÃO DE MESTRADO DEPARTAMENTO DE INFORMÁTICA Programa de Pós graduação em Mestrado em Informática Rio de Janeiro Julho de

Leia mais

PostgreSQL Performance

PostgreSQL Performance PostgreSQL Performance André Restivo Faculdade de Engenharia da Universidade do Porto February 24, 2012 André Restivo (FEUP) PostgreSQL Performance February 24, 2012 1 / 45 Sumário 1 Armazenamento 2 Índices

Leia mais

4 Implementação e Resultados Experimentais

4 Implementação e Resultados Experimentais 4 Implementação e Resultados Experimentais Com o objetivo de fazer a criação automática de visões materializadas, ou seja, prover uma solução on-the-fly para o problema de seleção de visões materializadas,

Leia mais

Arquitetura para Seleção de Índice no SGBD PostgreSQL, utilizando abordagem baseada em custos do Otimizador

Arquitetura para Seleção de Índice no SGBD PostgreSQL, utilizando abordagem baseada em custos do Otimizador ISSN: 1981-8882 Arquitetura para Seleção de Índice no SGBD PostgreSQL, utilizando abordagem baseada em custos do Otimizador Wendel Góes Pedrozo 1, Maria Salete Marcom Gomes Vaz 1,2 1 Departamento de Informática

Leia mais

PROCESSAMENTO E OTIMIZAÇÃO DE CONSULTAS EM GERENCIADORES DE BANCO DE DADOS RELACIONAIS

PROCESSAMENTO E OTIMIZAÇÃO DE CONSULTAS EM GERENCIADORES DE BANCO DE DADOS RELACIONAIS PONTIFÍCIA UNIVERSIDADE CATÓLICA DO PARANÁ CENTRO DE CIÊNCIAS EXATAS E DE TECNOLOGIA ESPECIALIZAÇÃO EM ADMINISTRAÇÃO DE BANCO DE DADOS PROCESSAMENTO E OTIMIZAÇÃO DE CONSULTAS EM GERENCIADORES DE BANCO

Leia mais

Fundamentos dos Sistemas de Informação Organização de Dados e Informações

Fundamentos dos Sistemas de Informação Organização de Dados e Informações Fundamentos dos Sistemas de Informação Organização de Dados e Informações http://professor.fimes.edu.br/milena milenaresende@fimes.edu.br Sistema de Gerenciamento de Bases de Dados (DBMS) A implementação

Leia mais

Banco de Dados. Otimização de consultas. Prof. Joao Eduardo Ferreira Prof. Osvaldo Kotaro Takai. Última atualização: 15 de maio de 2006

Banco de Dados. Otimização de consultas. Prof. Joao Eduardo Ferreira Prof. Osvaldo Kotaro Takai. Última atualização: 15 de maio de 2006 Banco de Dados Otimização de consultas Última atualização: 15 de maio de 2006 Prof. Joao Eduardo Ferreira Prof. Osvaldo Kotaro Takai Introdução Consulta em linguagem de alto nível Análise e validação Forma

Leia mais

5 Trabalhos Relacionados

5 Trabalhos Relacionados 5 Trabalhos Relacionados Existem ferramentas (por exemplo, (Morelli et al, 2012), (Bruno et al, 2011), (Rangaswamy et al, 2011), (Monteiro et al, 2012), (Elghandour, 2010) e (Goasdoué et al, 2011)) e abordagens

Leia mais

BANCO DE DADOS Parte 4

BANCO DE DADOS Parte 4 BANCO DE DADOS Parte 4 A Linguagem SQL Introdução Desenvolvida pelo depto de pesquisa da IBM na década de 1970 (System R) Linguagem padrão de BD Relacionais; Apresenta várias padrões evolutivos: SQL86,

Leia mais

Comandos de Manipulação

Comandos de Manipulação SQL - Avançado Inserção de dados; Atualização de dados; Remoção de dados; Projeção; Seleção; Junções; Operadores: aritméticos, de comparação,de agregação e lógicos; Outros comandos relacionados. SQL SQL

Leia mais

Oracle Advanced Compression x External Tables (Armazenamento de dados históricos)

Oracle Advanced Compression x External Tables (Armazenamento de dados históricos) Oracle Advanced Compression x External Tables (Armazenamento de dados históricos) Agenda Sobre Rodrigo Mufalani Clico de dados Visão Geral Avanced Compression Visão Geral External Tables Performance Disponibilidade

Leia mais

Novidades Oracle 11g. Rio Grande Energia - RGE

Novidades Oracle 11g. Rio Grande Energia - RGE Novidades Oracle 11g Daniel Güths Rio Grande Energia - RGE 1 Agenda Oracle Database 11g new features SQL e PL/SQL new features Performance e gerenciamento de recursos Gerenciamento de mudanças Gerenciamento

Leia mais

Introdução à Banco de Dados. Nathalia Sautchuk Patrício

Introdução à Banco de Dados. Nathalia Sautchuk Patrício Introdução à Banco de Dados Nathalia Sautchuk Patrício Histórico Início da computação: dados guardados em arquivos de texto Problemas nesse modelo: redundância não-controlada de dados aplicações devem

Leia mais

Reindexação Automática em SGBDs Relacionais

Reindexação Automática em SGBDs Relacionais Reindexação Automática em SGBDs Relacionais Eduardo Morelli, José Maria Monteiro, Ana Carolina Almeida, Sérgio Lifschitz Departamento de Informática PUC Rio {emorelli,monteiro,abrito,sergio}@inf.puc rio.br

Leia mais

Introdução a Informática. Prof.: Roberto Franciscatto

Introdução a Informática. Prof.: Roberto Franciscatto Introdução a Informática Prof.: Roberto Franciscatto 6.1 ARQUIVOS E REGISTROS De um modo geral os dados estão organizados em arquivos. Define-se arquivo como um conjunto de informações referentes aos elementos

Leia mais

SQL Structured Query Language

SQL Structured Query Language Janai Maciel SQL Structured Query Language (Banco de Dados) Conceitos de Linguagens de Programação 2013.2 Structured Query Language ( Linguagem de Consulta Estruturada ) Conceito: É a linguagem de pesquisa

Leia mais

ESTRATÉGIAS DE OTIMIZAÇÃO NO SGBD MICROSOFT SQL SERVER 2008 R2 IREMAR NUNES DE LIMA 2

ESTRATÉGIAS DE OTIMIZAÇÃO NO SGBD MICROSOFT SQL SERVER 2008 R2 IREMAR NUNES DE LIMA 2 ESTRATÉGIAS DE OTIMIZAÇÃO NO SGBD MICROSOFT SQL SERVER 2008 R2 RAMON FELIPE MOREIRA DIAS DE SOUZA 1 IREMAR NUNES DE LIMA 2 Resumo: Este artigo identifica e discute diversas estratégias que podem ser utilizadas

Leia mais

Administração de Banco de Dados

Administração de Banco de Dados Administração de Banco de Dados Adriano J. Holanda http://holanda.xyz 28/8/2015 Índices Para os testes com os índices criaremos uma tabela chamada tteste com o comando teste=> CREATE TABLE tteste (id int4);

Leia mais

Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri. Banco de Dados Processamento e Otimização de Consultas

Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri. Banco de Dados Processamento e Otimização de Consultas Processamento e Otimização de Consultas Banco de Dados Motivação Consulta pode ter sua resposta computada por uma variedade de métodos (geralmente) Usuário (programador) sugere uma estratégia para achar

Leia mais

Uma Abordagem Não-Intrusiva para a Manutenção Automática do Projeto Físico de Bancos de Dados

Uma Abordagem Não-Intrusiva para a Manutenção Automática do Projeto Físico de Bancos de Dados José Maria da Silva Monteiro Filho Uma Abordagem Não-Intrusiva para a Manutenção Automática do Projeto Físico de Bancos de Dados Tese de Doutorado Tese apresentada como requisito parcial para obtenção

Leia mais

Reindexação Automática em SGBDs Relacionais

Reindexação Automática em SGBDs Relacionais Reindexação Automática em SGBDs Relacionais Eduardo Morelli, José Maria Monteiro, Ana Carolina Almeida, Sérgio Lifschitz Departamento de Informática PUC-Rio {emorelli,monteiro,abrito,sergio}@inf.puc-rio.br

Leia mais

Sumário Agradecimentos... 19 Sobre.o.autor... 20 Prefácio... 21 Capítulo.1..Bem-vindo.ao.MySQL... 22

Sumário Agradecimentos... 19 Sobre.o.autor... 20 Prefácio... 21 Capítulo.1..Bem-vindo.ao.MySQL... 22 Sumário Agradecimentos... 19 Sobre o autor... 20 Prefácio... 21 Capítulo 1 Bem-vindo ao MySQL... 22 1.1 O que é o MySQL?...22 1.1.1 História do MySQL...23 1.1.2 Licença de uso...23 1.2 Utilizações recomendadas...24

Leia mais

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita:

SQL. SQL (Structured Query Language) Comando CREATE TABLE. SQL é uma linguagem de consulta que possibilita: SQL Tópicos Especiais Modelagem de Dados Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Mestrado Profissional em Ensino de Ciências

Leia mais

AVALIAÇÃO DE DESEMPENHO DE FERRAMENTAS PARA TUNING EM BANCO DE DADOS 1 EVALUATION OF TOOL PERFORMANCE FOR TUNING IN DATABASE

AVALIAÇÃO DE DESEMPENHO DE FERRAMENTAS PARA TUNING EM BANCO DE DADOS 1 EVALUATION OF TOOL PERFORMANCE FOR TUNING IN DATABASE Disciplinarum Scientia. Série: Ciências Naturais e Tecnológicas, Santa Maria, v. 13, n. 2, p. 201-211, 2012. Recebido em: 06.08.2013. Aprovado em: 26.09.2013. ISSN 2176-462X AVALIAÇÃO DE DESEMPENHO DE

Leia mais

Uma Abordagem Não-Intrusiva para Sintonia Automática de Consultas SQL

Uma Abordagem Não-Intrusiva para Sintonia Automática de Consultas SQL Uma Abordagem Não-Intrusiva para Sintonia Automática de Consultas SQL Arlino H. Magalhães de Araújo 1, José Maria Monteiro 1, José Antônio F. de Macêdo 1 1 Departamento de Computação Universidade Federal

Leia mais

Integridade dos Dados

Integridade dos Dados 1 Integridade dos Dados Integridade dos Dados Melissa Lemos melissa@inf.puc-rio.br A integridade dos dados é feita através de restrições, que são condições obrigatórias impostas pelo modelo. Restrições

Leia mais

UFCD 787. Administração de base de dados. Elsa Marisa S. Almeida

UFCD 787. Administração de base de dados. Elsa Marisa S. Almeida UFCD 787 Administração de base de dados Elsa Marisa S. Almeida 1 Objectivos Replicação de base de dados Gestão de transacções Cópias de segurança Importação e exportação de dados Elsa Marisa S. Almeida

Leia mais

14/09/2008. Curso Superior de Tecnologia em Bando de Dados Disciplina: Projeto de Banco de Dados Relacional II Prof.: Fernando Hadad Zaidan

14/09/2008. Curso Superior de Tecnologia em Bando de Dados Disciplina: Projeto de Banco de Dados Relacional II Prof.: Fernando Hadad Zaidan Faculdade INED Curso Superior de Tecnologia em Bando de Dados Disciplina: Projeto de Banco de Dados Relacional II Prof.: Fernando Hadad Zaidan Unidade 2.2 1 2 Material usado na montagem dos Slides Bibliografia

Leia mais

Tuning em queries em Banco de Dados

Tuning em queries em Banco de Dados Tuning em queries em Banco de Dados Alison K. L. Leite 1, Izabella C. A. M. S. Bosco 1, Juliana M. Massoni 1, Patrícia B. Ribeiro 1 1 Curso de Tecnologia em Banco de Dados - Faculdade de Tecnologia de

Leia mais

SQL. Prof. Márcio Bueno. {bd2tarde,bd2noite}@marciobueno.com

SQL. Prof. Márcio Bueno. {bd2tarde,bd2noite}@marciobueno.com SQL Prof. Márcio Bueno {bd2tarde,bd2noite}@marciobueno.com Material dos professores Ana Carolina Salgado, Fernando Foncesa e Valéria Times (CIn/UFPE) SQL SQL - Structured Query Language Linguagem de Consulta

Leia mais

SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável.

SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável. SQL (Structured Query Language) SQL é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável. Além de permitir a realização de consultas, SQL possibilita: definição

Leia mais

BANCO DE DADOS CONCEITOS BÁSICOS

BANCO DE DADOS CONCEITOS BÁSICOS Universidade Federal da Paraíba UFPB Centro de Energias Alternativas e Renováveis - CEAR Departamento de Eng. Elétrica DEE BANCO DE DADOS CONCEITOS BÁSICOS Isaac Maia Pessoa Introdução O que é um BD? Operações

Leia mais

COMPETÊNCIAS ESPECÍFICAS Compreender e utilizar a linguagem SQL, na construção e manutenção de uma base de dados.

COMPETÊNCIAS ESPECÍFICAS Compreender e utilizar a linguagem SQL, na construção e manutenção de uma base de dados. PLANIFICAÇÃO DA DISCIPLINA DE SISTEMAS DE INFORMAÇÃO 12.ºH CURSO PROFISSIONAL DE TÉCNICO MULTIMÉDIA ANO LECTIVO 2013/2014 6. LINGUAGENS DE PROGRAMAÇÃO IV Pré-requisitos: - Planificar e estruturar bases

Leia mais

LINGUAGEM SQL. DML - Linguagem de Manipulação de Dados

LINGUAGEM SQL. DML - Linguagem de Manipulação de Dados LINGUAGEM SQL Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL, é uma linguagem de pesquisa declarativa para banco de dados relacional (base de dados relacional). Muitas das características

Leia mais

Junções e Índices em Tabelas

Junções e Índices em Tabelas Junções e Índices em Tabelas Prof. Fernanda Baião fernanda.baiao@uniriotec.com.br SGBD Considerados MySQL (http://www.mysql.org) SGBD gratuito e simples, sem muitos recursos avançados Fácil de instalar

Leia mais

BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING

BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING BANCO DE DADOS DISTRIBUÍDOS e DATAWAREHOUSING http://www.uniriotec.br/~tanaka/tin0036 tanaka@uniriotec.br Bancos de Dados Distribuídos Processamento de Consultas Ambiente com SGBD Distribuído Processamento

Leia mais

Processamento e Otimização de Consultas

Processamento e Otimização de Consultas Introdução Processamento e Banco de Dados II Prof. Guilherme Tavares de Assis Universidade Federal de Ouro Preto UFOP Instituto de Ciências Exatas e Biológicas ICEB Departamento de Computação DECOM 1 Processamento

Leia mais

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet

Faculdade Pitágoras 16/08/2011. Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet Faculdade Pitágoras Curso Superior de Tecnologia: Banco de Dados Sistemas para Internet Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL A linguagem SQL é responsável por garantir um bom nível

Leia mais

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL

Faculdade Pitágoras. Curso Superior de Tecnologia: Banco de Dados. Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL Faculdade Pitágoras Curso Superior de Tecnologia: Banco de Dados Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan SQL A linguagem SQL é responsável por garantir um bom nível de independência do

Leia mais

Componentes internos de Um SGBD

Componentes internos de Um SGBD Arquitetura SBGD Gerenciamento de Processos joao@uefs.br Departamento de Ciências Exatas Universidade Estadual de Feira de Santana e sistemas paralelos 1 e sistemas paralelos Componentes internos de Um

Leia mais

Banco de Dados. Aula 1 - Prof. Bruno Moreno 16/08/2011

Banco de Dados. Aula 1 - Prof. Bruno Moreno 16/08/2011 Banco de Dados Aula 1 - Prof. Bruno Moreno 16/08/2011 Roteiro Apresentação do professor e disciplina Definição de Banco de Dados Sistema de BD vs Tradicional Principais características de BD Natureza autodescritiva

Leia mais

Bases de Dados 2005/2006. Aula 5

Bases de Dados 2005/2006. Aula 5 Bases de Dados 2005/2006 Aula 5 Sumário -1. (T.P.C.) Indique diferenças entre uma tabela e uma relação. 0. A base de dados Projecto 1. SQL Join (variantes) a. Cross Join b. Equi-Join c. Natural Join d.

Leia mais

Tarefa Orientada 16 Vistas

Tarefa Orientada 16 Vistas Tarefa Orientada 16 Vistas Objectivos: Vistas só de leitura Vistas de manipulação de dados Uma vista consiste numa instrução de SELECT que é armazenada como um objecto na base de dados. Deste modo, um

Leia mais

SGBDs Móveis. Sumário 12/06/11. Emmanuel Férrer & Gabriela Fernanda. Introdução. Desafios do armazenamento. SQL Anywhere Studio.

SGBDs Móveis. Sumário 12/06/11. Emmanuel Férrer & Gabriela Fernanda. Introdução. Desafios do armazenamento. SQL Anywhere Studio. SGBDs Móveis Emmanuel Férrer & Gabriela Fernanda Introdução Sumário Desafios do armazenamento SQL Anywhere Studio DB2 Everyplace Microsoft SQL Server Oracle9I Lite Aplicações Móveis Referências 1 Introdução

Leia mais

Tuning para Desenvolvedores DB2

Tuning para Desenvolvedores DB2 Tuning para Desenvolvedores DB2 Perallis IT Innovation Soluções em Armazenamento de dados www.perallis.com contato@perallis.com +55 19 3203-1002 SOBRE ESTE CURSO PÚBLICO-ALVO O curso Tuning para Desenvolvedores

Leia mais

Consistem num conjunto de apontadores para instâncias especificas de cada relação.

Consistem num conjunto de apontadores para instâncias especificas de cada relação. Mecanismo usado para mais fácil e rapidamente aceder à informação existente numa base de dados. Bases de Dados de elevadas dimensões. Consistem num conjunto de apontadores para instâncias especificas de

Leia mais

Pontifícia Universidade Católica DO RIO DE JANEIRO

Pontifícia Universidade Católica DO RIO DE JANEIRO Pontifícia Universidade Católica DO RIO DE JANEIRO Eduardo Maria Terra Morelli Recriação Automática de Índices em um SGBD Relacional Dissertação de Mestrado Dissertação apresentada ao Programa de Pósgraduação

Leia mais

OTIMIZAÇÃO DE CONSULTAS NO SGBD ORACLE 11G. Resumo: Este artigo apresenta diversas técnicas e ferramentas para otimizar consultas

OTIMIZAÇÃO DE CONSULTAS NO SGBD ORACLE 11G. Resumo: Este artigo apresenta diversas técnicas e ferramentas para otimizar consultas OTIMIZAÇÃO DE CONSULTAS NO SGBD ORACLE 11G BRENO MARCELO DE SOUZA 1 IREMAR NUNES DE LIMA 2 Resumo: Este artigo apresenta diversas técnicas e ferramentas para otimizar consultas SQL no Sistema Gerenciador

Leia mais

Banco de Dados. Maurício Edgar Stivanello

Banco de Dados. Maurício Edgar Stivanello Banco de Dados Maurício Edgar Stivanello Agenda Conceitos Básicos SGBD Projeto de Banco de Dados SQL Ferramentas Exemplo Dado e Informação Dado Fato do mundo real que está registrado e possui um significado

Leia mais

Banco de Dados, Integração e Qualidade de Dados. Ceça Moraes cecafac@gmail.com

Banco de Dados, Integração e Qualidade de Dados. Ceça Moraes cecafac@gmail.com Banco de Dados, Integração e Qualidade de Dados Ceça Moraes cecafac@gmail.com Sobre a professora CeçaMoraes Doutora em Computação (UFPE) Áreas de atuação Desenvolvimento de Software e Banco de Dados Experiência

Leia mais

Performance Tuning. O que é, por onde começar e o que fazer? Fábio Prado. www.fabioprado.net

Performance Tuning. O que é, por onde começar e o que fazer? Fábio Prado. www.fabioprado.net Performance Tuning O que é, por onde começar e o que fazer? Fábio Prado Visão geral Nesta apresentação veremos: O que é Tuning? Objetivos do tuning Problemas mais comuns Onde e por que tunar? Atividades

Leia mais

P L A N I F I C A Ç Ã O A N U A L

P L A N I F I C A Ç Ã O A N U A L P L A N I F I C A Ç Ã O A N U A L DEPARTAMENTO: MATEMÁTICA E CIÊNCIAS EXPERIMENTAIS ÁREA DISCIPLINAR: 550 - INFORMÁTICA DISCIPLINA: PSI CURSO: Profissional DE: Téc. de Gestão e Programação de Sist. Informáticos

Leia mais

Dicas de Projeto Lógico Relacional

Dicas de Projeto Lógico Relacional Dicas de Projeto Lógico Relacional O que deve ser especificado? mapeamento do esquema conceitual definição das tabelas e chaves justificativas de mapeamento (se necessário) restrições de integridade (RIs)

Leia mais

Introdução a Banco de Dados

Introdução a Banco de Dados Introdução a Banco de Dados O modelo relacional Marta Mattoso Sumário Introdução Motivação Serviços de um SGBD O Modelo Relacional As aplicações não convencionais O Modelo Orientado a Objetos Considerações

Leia mais

Banco de Dados. Prof. Dr. Rogério Galante Negri

Banco de Dados. Prof. Dr. Rogério Galante Negri Banco de Dados Prof Dr Rogério Galante Negri Tradicionalmente O armazenamento dos dados utilizava arquivos individuais, sem nenhum relacionamento Cada programa utilizava seu próprio sistema de arquivo

Leia mais

ANÁLISE COMPARATIVA DOS ALGORITMOS DE OTIMIZAÇÃO DE CONSULTAS DO POSTGRESQL

ANÁLISE COMPARATIVA DOS ALGORITMOS DE OTIMIZAÇÃO DE CONSULTAS DO POSTGRESQL 1 ANÁLISE COMPARATIVA DOS ALGORITMOS DE OTIMIZAÇÃO DE CONSULTAS DO POSTGRESQL COMPARATIVE ANALYSIS OF ALGORITHMS OPTIMIZATION POSTGRESQL QUERY Lucas Bianchi Magalhães; Francisco Virginio Maracci; Aglaê

Leia mais

GBD. Introdução PROF. ANDREZA S. AREÃO

GBD. Introdução PROF. ANDREZA S. AREÃO GBD Introdução PROF. ANDREZA S. AREÃO Sistema de arquivos X Sistemas de Banco de Dados Sistema de arquivos Sistema de Banco de Dados Aplicativos Dados (arquivos) Aplicativos SGBD Dados (arquivos) O acesso/gerenciamento

Leia mais

Arquitetura de SGBD. Prof. Antonio Almeida de Barros Junior

Arquitetura de SGBD. Prof. Antonio Almeida de Barros Junior Arquitetura de SGBD Prof. Antonio Almeida de Barros Junior Agenda Caracterização de SGBDs SGBDs Centralizados SGBDs Cliente-Servidor SGBDs Distribuídos Homogêneos Multi-SGBDs Heterogêneos SGBDs Paralelos

Leia mais

Básico da Linguagem SQL. Definição de Esquemas em SQL. SQL(Structured Query Language)

Básico da Linguagem SQL. Definição de Esquemas em SQL. SQL(Structured Query Language) Básico da Linguagem SQL Definição de Esquemas em SQL SQL(Structured Query Language) Desenvolvida como a linguagem de consulta do protótipo de SGBD Sistema R (IBM, 1976). Adotada como linguagem padrão de

Leia mais

BANCO DE DADOS -INTRODUÇÃO AO SQL. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br

BANCO DE DADOS -INTRODUÇÃO AO SQL. Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br BANCO DE DADOS -INTRODUÇÃO AO SQL Prof. Angelo Augusto Frozza, M.Sc. frozza@ifc-camboriu.edu.br Os comandos SQL podem ser agrupados em 3 classes: DDL Data Definition Language Comandos para a Definição

Leia mais

S Q L 31/03/2010. SQL - Structured Query Language Linguagem de Consulta Estruturada

S Q L 31/03/2010. SQL - Structured Query Language Linguagem de Consulta Estruturada Gerenciamento de Dados e Informação Fernando Fonseca Ana Carolina Robson Fidalgo SQL SQL - Structured Query Language Linguagem de Consulta Estruturada Apesar do QUERY no nome, não é apenas de consulta,

Leia mais

Linguagem de Consulta Estruturada SQL- DML

Linguagem de Consulta Estruturada SQL- DML Linguagem de Consulta Estruturada SQL- DML INTRODUÇÃO A SQL - Structured Query Language, foi desenvolvido pela IBM em meados dos anos 70 como uma linguagem de manipulação de dados (DML - Data Manipulation

Leia mais

Banco de Dados. Prof. Antonio

Banco de Dados. Prof. Antonio Banco de Dados Prof. Antonio SQL - Structured Query Language O que é SQL? A linguagem SQL (Structure query Language - Linguagem de Consulta Estruturada) é a linguagem padrão ANSI (American National Standards

Leia mais

Sistema de Bancos de Dados. Conceitos Gerais Sistema Gerenciador de Bancos de Dados

Sistema de Bancos de Dados. Conceitos Gerais Sistema Gerenciador de Bancos de Dados Sistema de Bancos de Dados Conceitos Gerais Sistema Gerenciador de Bancos de Dados # Definições # Motivação # Arquitetura Típica # Vantagens # Desvantagens # Evolução # Classes de Usuários 1 Nível 1 Dados

Leia mais

Arquitetura de Banco de Dados

Arquitetura de Banco de Dados Arquitetura de Banco de Dados Daniela Barreiro Claro MAT A60 DCC/IM/UFBA Arquitetura de Banco de dados Final de 1972, ANSI/X3/SPARC estabeleceram o relatório final do STUDY GROUP Objetivos do Study Group

Leia mais

Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br Programação com acesso a BD Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br 1 Modelos de Dados, Esquemas e Instâncias 2 Modelos de Dados, Esquemas e Instâncias Modelo de dados: Conjunto de conceitos

Leia mais

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri

SQL Linguagem de Manipulação de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Manipulação de Dados Banco de Dados SQL DML SELECT... FROM... WHERE... lista atributos de uma ou mais tabelas de acordo com alguma condição INSERT INTO... insere dados em uma tabela DELETE

Leia mais

AULA 2 INTERAÇÃO COM O BANCO DE DADOS

AULA 2 INTERAÇÃO COM O BANCO DE DADOS AULA 2 INTERAÇÃO COM O BANCO DE DADOS BANCO DE DADOS POSTGRESQL O PostgreSQL é um sistema gerenciador de banco de dados dos mais robustos e avançados do mundo. Seu código é aberto e é totalmente gratuito,

Leia mais

Automatic virtual machine configuration for database workloads (SIGMOD Journal)

Automatic virtual machine configuration for database workloads (SIGMOD Journal) Automatic virtual machine configuration for database workloads (SIGMOD Journal) [Soror et al. 2010] Adriano Lange Universidade Federal do Paraná Departamento de Informática Programa de Pós-Graduação em

Leia mais

André Milani. Novatec

André Milani. Novatec André Milani Novatec Sumário Agradecimentos...19 Sobre o autor...21 Prefácio...23 Capítulo 1 Bem-vindo ao PostgreSQL...25 1.1 O que é o PostgreSQL?...25 1.1.1 História do PostgreSQL...26 1.1.2 Licença

Leia mais

S Q L 15/01/2013. Enfoques de SQL. Enfoques de SQL SQL. Usos de SQL. SQL - Origem/Histórico. Gerenciamento de Dados e Informação

S Q L 15/01/2013. Enfoques de SQL. Enfoques de SQL SQL. Usos de SQL. SQL - Origem/Histórico. Gerenciamento de Dados e Informação Enfoques de SQL Gerenciamento de Dados e Informação Fernando Fonseca Ana Carolina Valeria Times Bernadette Loscio Linguagem interativa de consulta (ad-hoc): usuários podem definir consultas independente

Leia mais

SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL

SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL SQL - Structured Query Language, ou Linguagem de Consulta Estruturada ou SQL Criar uma base de dados (criar um banco de dados) No mysql: create database locadora; No postgresql: createdb locadora Criar

Leia mais

Administração de Banco de Dados

Administração de Banco de Dados Administração de Banco de Dados Professora conteudista: Cida Atum Sumário Administração de Banco de Dados Unidade I 1 INTRODUÇÃO A BANCO DE DADOS...1 1.1 Histórico...1 1.2 Definições...2 1.3 Importância

Leia mais

SQL. Banco de Dados I. Componentes de SQL

SQL. Banco de Dados I. Componentes de SQL Banco de Dados I Adrovane Marques Kade 1 1 Curso de Análise e Desenvolvimento de Sistemas Instituto Federal de Educação, Ciência e Tecnologia adrovane.kade@bento.ifrs.edu.br 2011/1 ( Structured Query Language

Leia mais

CIÊNCIA E TECNOLOGIA DO RIO

CIÊNCIA E TECNOLOGIA DO RIO INSTITUTO FEDERAL DE EDUCAÇÃO, CIÊNCIA E TECNOLOGIA DO RIO GRANDE DO NORTE BANCO DE DADOS II Docente: Éberton da Silva Marinho e-mail: ebertonsm@gmail.com eberton.marinho@ifrn.edu.br Curso de Tecnologia

Leia mais

Uma abordagem prática de tuning em banco de dados, usando PostgreSQL

Uma abordagem prática de tuning em banco de dados, usando PostgreSQL Uma abordagem prática de tuning em banco de dados, usando PostgreSQL Marcelo Josué Telles Universidade Federal do Rio Grande do Sul Instituto de Informática Caixa Postal 15.064 91.501-970 Porto Alegre

Leia mais

Utilização de Redes Neurais na Manutenção Pró-Ativa de Índices

Utilização de Redes Neurais na Manutenção Pró-Ativa de Índices Utilização de Redes Neurais na Manutenção Pró-Ativa de Índices André Medeiros 1,2, Aristênio Saraiva 2, Gustavo Campos 2, José Maria Monteiro 3 1 IBM - Brasil agbm@br.ibm.com 2 Departamento de Computação,

Leia mais

Sumário 1 0.1 Introdução 1 0.2 Breve História da Linguagem SQL l 0.3 Características da Linguagem SQL 3 0.4 A Composição deste Livro 3

Sumário 1 0.1 Introdução 1 0.2 Breve História da Linguagem SQL l 0.3 Características da Linguagem SQL 3 0.4 A Composição deste Livro 3 ÍNDICE o -INTRODUÇÃO Sumário 1 0.1 Introdução 1 0.2 Breve História da Linguagem SQL l 0.3 Características da Linguagem SQL 3 0.4 A Composição deste Livro 3 0.5 Sistemas Utilizados 6 0.5.1 Access 2003 (Microsoft)

Leia mais

Arquitetura de SGBD Relacionais Previsão de Seletividade

Arquitetura de SGBD Relacionais Previsão de Seletividade Arquitetura de SGBD Relacionais Previsão de Seletividade Caetano Traina Jr. Grupo de Bases de Dados e Imagens Instituto de Ciências Matemáticas e de Computação Universidade de São Paulo - São Carlos caetano@icmc.usp.br

Leia mais

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados:

Dado: Fatos conhecidos que podem ser registrados e têm um significado implícito. Banco de Dados: MC536 Introdução Sumário Conceitos preliminares Funcionalidades Características principais Usuários Vantagens do uso de BDs Tendências mais recentes em SGBDs Algumas desvantagens Modelos de dados Classificação

Leia mais

Banco de Dados. Professor: Rômulo César. romulodandrade@gmail.com www.romulocesar.com.br

Banco de Dados. Professor: Rômulo César. romulodandrade@gmail.com www.romulocesar.com.br Banco de Dados Professor: Rômulo César romulodandrade@gmail.com www.romulocesar.com.br Sistema de arquivos X Sistemas de Banco de Dados Sistema de arquivos Sistema de Banco de Dados Aplicativos Dados (arquivos)

Leia mais

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

Structured Query Language (SQL) Ambiente Simplificado de um SGBD Structured Query Language (SQL) Ambiente Simplificado de um SGBD 2 1 Características dos SGBDs Natureza auto-contida de um sistema de banco de dados: metadados armazenados num catálogo ou dicionário de

Leia mais

Banco de Dados. Marcio de Carvalho Victorino www.dominandoti.eng.br. Exercícios SQL

Banco de Dados. Marcio de Carvalho Victorino www.dominandoti.eng.br. Exercícios SQL Banco de Dados Exercícios SQL 1 TRF (ESAF 2006) 32. Analise as seguintes afirmações relacionadas a Bancos de Dados e à linguagem SQL: I. A cláusula GROUP BY do comando SELECT é utilizada para dividir colunas

Leia mais

Prof. Daniela Barreiro Claro

Prof. Daniela Barreiro Claro Prof. Daniela Barreiro Claro SQL, SQL3 e OQL são linguagens declarativas O SGBD deve processar e otimizar estas consultas antes delas serem efetivamente executadas Uma consulta possui muitas estratégias

Leia mais

Etapas da evolução rumo a tomada de decisão: Aplicações Isoladas: dados duplicados, dados inconsistentes, processos duplicados.

Etapas da evolução rumo a tomada de decisão: Aplicações Isoladas: dados duplicados, dados inconsistentes, processos duplicados. Histórico Etapas da evolução rumo a tomada de decisão: Aplicações Isoladas: dados duplicados, dados inconsistentes, processos duplicados. Sistemas Integrados: racionalização de processos, manutenção dos

Leia mais

Histórico de revisões

Histórico de revisões Apostila 3 Histórico de revisões Data Versão Descrição Autor 30/09/2011 1.0 Criação da primeira versão HEngholmJr CONTEÚDO Exclusão de registros Consultas por Dados de Resumo Group by / Having Funções

Leia mais

Introdução a Sistemas de Bancos de Dados

Introdução a Sistemas de Bancos de Dados Introdução a Sistemas de Bancos de Dados Prof. UFES - Universidade Federal do Espírito Santo rapchan@inf.ufes.br http://www.inf.ufes.br/~rapchan Roteiro da Apresentação Introdução Características de um

Leia mais

Sintonia fina baseada em ontologia: o caso de visões materializadas

Sintonia fina baseada em ontologia: o caso de visões materializadas paper:11 Sintonia fina baseada em ontologia: o caso de visões materializadas Aluno - Rafael Pereira de Oliveira 1 Orientador - Sérgio Lifschitz 1 1 Departamento de Informática Programa de Pós-graduação

Leia mais

Lendas do Oracle. Ricardo Portilho Proni ricardo@nervinformatica.com.br. TITLE Speaker

Lendas do Oracle. Ricardo Portilho Proni ricardo@nervinformatica.com.br. TITLE Speaker TITLE Speaker Lendas do Oracle Ricardo Portilho Proni ricardo@nervinformatica.com.br Esta obra está licenciada sob a licença Creative Commons Atribuição-SemDerivados 3.0 Brasil. Para ver uma cópia desta

Leia mais

Principais Instruções em SQL. Contidas nesta apostila as principais instruções em SQL para a manutenção em Bancos de Dados.

Principais Instruções em SQL. Contidas nesta apostila as principais instruções em SQL para a manutenção em Bancos de Dados. Principais Instruções em SQL Contidas nesta apostila as principais instruções em SQL para a manutenção em Bancos de Dados. Atenção: Esta apostila foi desenvolvida com o auxílio on-line do banco MS-ACCESS,

Leia mais

Exercícios de Lógica Exercícios de Fixação 08

Exercícios de Lógica Exercícios de Fixação 08 Exercícios Exercícios de Lógica Exercícios de Fixação 08 1. A linguagem SQL apresenta uma série de comandos que permitem a definição dos dados, chamada de DDL (Data Definition Language). Assinale a alternativa

Leia mais

Banco de Dados Oracle. Faculdade Pernambucana - FAPE

Banco de Dados Oracle. Faculdade Pernambucana - FAPE Faculdade Pernambucana - FAPE Visão Geral dos Componentes Principais da Arquitetura Oracle Servidor Oracle É o nome que a Oracle deu ao seu SGBD. Ele consiste de uma Instância e um Banco de Dados Oracle.

Leia mais

PROGRAMA. Aquisição dos conceitos teóricos mais importantes sobre bases de dados contextualizados à luz de exemplos da sua aplicação no mundo real.

PROGRAMA. Aquisição dos conceitos teóricos mais importantes sobre bases de dados contextualizados à luz de exemplos da sua aplicação no mundo real. PROGRAMA ANO LECTIVO: 2005/2006 CURSO: LICENCIATURA BI-ETÁPICA EM INFORMÁTICA ANO: 2.º DISCIPLINA: BASE DE DADOS DOCENTE RESPONSÁVEL PELA REGÊNCIA: Licenciado Lino Oliveira Objectivos Gerais: Aquisição

Leia mais

Worldwide Online TechDay. 30 - Outubro

Worldwide Online TechDay. 30 - Outubro 30 - Outubro 1 Como funciona um banco de dados Microsoft SQL Server? Fabricio Catae Premier Field Engineer Microsoft Certified Master Twitter: @fcatae WebSite: http://blogs.msdn.com/fcatae/ 2 Nossos Parceiros

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Evolução Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Sumário Introdução Componentes de um sistema computacional Conceituação Características desejáveis Organização

Leia mais

Banco de Dados I 2007. Módulo V: Indexação em Banco de Dados. (Aulas 4) Clodis Boscarioli

Banco de Dados I 2007. Módulo V: Indexação em Banco de Dados. (Aulas 4) Clodis Boscarioli Banco de Dados I 2007 Módulo V: Indexação em Banco de Dados (Aulas 4) Clodis Boscarioli Agenda: Indexação em SQL; Vantagens e Custo dos Índices; Indexação no PostgreSQL; Dicas Práticas. Índice em SQL Sintaxe:

Leia mais