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

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

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

Transcrição

1 José Maria Monteiro Universidade de Fortaleza (UNIFOR) Secretaria da Fazenda do Estado do Ceará (SEFAZ-CE) Contexto VLDB Vários GB de dados terabytes ou terrorbytes cartões de crédito, correios expressos Caso Petrobras coorporativo anos atrás 5K tabelas e índices + 2K views Algumas tabelas com mais de 50M tuplas 20 consultas por minuto 12K usuários (200 simultâneos) SAP R/3 básico 16K tabelas e 19K índices! José Maria Monteiro UNIFOR Mini-curso SBBD /113 1

2 Tuning de 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! José Maria Monteiro UNIFOR Mini-curso SBBD /113 Problema típico (1)insert into SALES (prodnum, date, qty, value) values (4, current_timestamp, 20, 348); (2)select prodnum, date, sum(value) as total from SALES where value > and date between and group by prodnum, date; Indices para uma aplicação que contém estas (e possivelmente muitas outras ) cláusulas SQL? José Maria Monteiro UNIFOR Mini-curso SBBD /113 2

3 Problema simples? update venda set valor = valor -1 where valor > ; Índices ajudam ou atrapalham? José Maria Monteiro UNIFOR Mini-curso SBBD /113 Princípios de Tuning (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! José Maria Monteiro UNIFOR Mini-curso SBBD /113 3

4 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 José Maria Monteiro UNIFOR Mini-curso SBBD /113 Dificuldades: Tuning Perceber que um recurso está sendo mal utilizado => monitoramento é parte fundamental do processo Localizar e entender a verdadeira fonte do problema => Mais de 90% do tempo para resolução de problemas de desempenho é gasto no diagnóstico. José Maria Monteiro UNIFOR Mini-curso SBBD /113 4

5 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! José Maria Monteiro UNIFOR Mini-curso SBBD /113 Agenda o Introdução e Motivação o Conceitos e Fundamentos o Arquiteturas de SGBD, Arquivos e Índices o Processamento de Consultas e Operadores Relacionais o Tuning o Planos e Métodos de Acesso o Monitoramento e Ações o Self-tuning o Visão Geral do Estado da Arte o PUC-Rio o Adicionais Tuning e Comentários Finais José Maria Monteiro UNIFOR Mini-curso SBBD /113 5

6 Arquitetura ANSI/SPARC EE1 EE2 EE3 EC EI Três níveis de abstração: Esquemas Externos (EE) Esquema Conceitual (EC) Esquema Interno (EI) Princípio da Independência de Dados Independência física e lógica E.g. Modelo Relacional de Dados José Maria Monteiro UNIFOR Mini-curso SBBD /113 SQL Arquitetura Funcional Componentes de um SGBD Processador de Consultas Otimizador Executor Controle de Concorrência Gerência de Bloqueios Gerência de Transação e Recuperação Gerente de Armazenamento Controle de Memória Controle de Dados Meta-Dados e Dados e Log de Tuning e Self-Tuning Estatísticas de José Maria Monteiro Índices UNIFOR Mini-curso SBBD Transações /113 6

7 Componentes do SGBD Gerenciadores (Managers): RM - Relational Manager DM - Data Manager FM - File Manager BM - Buffer Manager RM - Recovery Manager LgM - Log Manager LkM - Lock Manager José Maria Monteiro UNIFOR Mini-curso SBBD /113 Organização de Arquivos Tipos básicos de arquivos: Heap (entry sequenced files) Ordenados (sorted) Hash Árvores balanceadas José Maria Monteiro UNIFOR Mini-curso SBBD /113 7

8 Heap Files Organização Seqüencial não há ordenação dos registros Inclusão de registro simples e eficiente Acesso somente pesquisa seqüencial Exclusão de registro exclusão lógica eficiente, mas necessita reorganizações periódicas. José Maria Monteiro UNIFOR Mini-curso SBBD /113 Arquivos Ordenados (Sorted) pesquisa interessante para campos chave Num Nome Idade Sal 1000 Ademar Afonso Angela Antonio Carlos Cesar Sonia Tatiana } } } bloco 1 bloco 2 bloco n José Maria Monteiro UNIFOR Mini-curso SBBD /113 8

9 Arquivos Hash Usa uma função de cálculo de endereço (hashing) função gera endereço provável Em geral, um único I/O por bloco para obter registro desejado endereço: bloco ou bloco + registro no bloco Nome = Cristiano endereço = f (nome) Número Nome Idade Salário Antônio Cristiano José Maria Monteiro UNIFOR Mini-curso SBBD /113 Árvores B Árvores B: Bayer e McCreight (1972) características: construção: bottom up paged tree splits chaves ordenadas em cada página k chaves por página k + 1 ponteiros por página José Maria Monteiro UNIFOR Mini-curso SBBD /113 9

10 Árvores B Outras características: N chaves, m ponteiros por página (ordem) número máximo de níveis d (pior caso): d 1 log m/ 2 N 1 / 2 N = N = m = 512 m = 512 d níveis d níveis José Maria Monteiro UNIFOR Mini-curso SBBD /113 Árvores B José Maria Monteiro UNIFOR Mini-curso SBBD /113 10

11 Ainda Árvores B + Sequence Set: conjunto ordenado de blocos chaves ordenadas em cada bloco lista simples ou duplamente encadeada José Maria Monteiro UNIFOR Mini-curso SBBD /113 Índices Estruturas auxiliares para permitir acesso mais rápido dados Sem índices, para obter uma informação de uma tabela, todas as linhas devem ser lidas do arquivo Com índice, pode ser feito acesso direto Índices em livros permitem que passemos diretamente para o capítulo desejado! José Maria Monteiro UNIFOR Mini-curso SBBD /113 11

12 Estruturas auxiliares: Índices chave pág n José Maria Monteiro UNIFOR Mini-curso SBBD /113 Tipos de Índices Podem ser de diversos tipos: Árvore B + Cluster ou não-cluster Bitmap... Alguns SGBDs permitem: índices com valores em ordem reversa índices em resultados de funções José Maria Monteiro UNIFOR Mini-curso SBBD /113 12

13 Índices Normalmente são variações das árvores B e B + du cage eva 64 folk José Maria Monteiro UNIFOR Mini-curso SBBD /113 Clusterização Índices podem ser utilizados para: garantir unicidade das chaves na tabela ordem física de armazenamento das linhas na tabela: cluster indexes no DB2 e SQL Server Index Organized tables no Oracle índice cluster linhas armazenadas na seqüência da chave índice não cluster chave do índice não influencia no posicionamento José Maria Monteiro UNIFOR Mini-curso SBBD /113 13

14 Índices Clusterizados José Maria Monteiro UNIFOR Mini-curso SBBD /113 Índices Não-clusterizados José Maria Monteiro UNIFOR Mini-curso SBBD /113 14

15 Processamento de Consultas Parse Query Check de Semântica Query Rewrite Otimização do Plano de Acesso Geração de Código José Maria Monteiro UNIFOR Mini-curso SBBD /113 Otimização e Execução de Consultas Envolve Reescrita da consulta Determinação do melhor plano de acesso Após otimização, ocorre a execução da consulta de acordo com o plano José Maria Monteiro UNIFOR Mini-curso SBBD /113 15

16 Otimização de Consultas Problema NP-difícil: muitas alternativas de planos O otimizador de consultas determina o plano de acesso através de: Heurísticas (otimização por regras, RBO) Busca de plano de melhor custo (otimização por custo, CBO) José Maria Monteiro UNIFOR Mini-curso SBBD /113 Metabase e Estatísticas A otimização por custo demanda estatísticas: de tabelas: número de tuplas, blocos, tamanho de registro médio de colunas: número de valores distintos, nulos, histogramas de índices: número de folhas, níveis, clustering de sistema: utilização típica de I/O e de CPU Estatísticas devem sempre estar atualizadas! José Maria Monteiro UNIFOR Mini-curso SBBD /113 16

17 Agenda o Introdução e Motivação o Conceitos e Fundamentos o Arquiteturas de SGBD, Arquivos e Índices o Processamento de Consultas e Operadores Relacionais o Tuning o Planos e Métodos de Acesso o Monitoramento e Ações o Self-tuning o Visão Geral do Estado da Arte o PUC-Rio o Adicionais Tuning e Comentários Finais José Maria Monteiro UNIFOR Mini-curso SBBD /113 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 José Maria Monteiro UNIFOR Mini-curso SBBD /113 17

18 QEP: Query Execution Plan Exemplo: SELECT FROM WHERE endereço, data-nascimento empregado 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) José Maria Monteiro UNIFOR Mini-curso SBBD /113 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 José Maria Monteiro UNIFOR Mini-curso SBBD /113 18

19 Junções Principais algoritmos: Laços Aninhados (Nested Loops Join) Ordenação/Intercalação (Merge Join) Hashing (Hash Join) José Maria Monteiro UNIFOR Mini-curso SBBD /113 Nested Loops T1 Outer Table T2 Inner Table José Maria Monteiro UNIFOR Mini-curso SBBD /113 19

20 Ordenada Ordenada Merge Join Outer Table Inner Table José Maria Monteiro UNIFOR Mini-curso SBBD /113 Hash Join Build Phase f(chave) Outer Table Probe Phase Inner Table José Maria Monteiro UNIFOR Mini-curso SBBD /113 20

21 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! José Maria Monteiro UNIFOR Mini-curso SBBD /113 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 José Maria Monteiro UNIFOR Mini-curso SBBD /113 21

22 Fator de Filtro Fator de filtro de um predicado: número entre 0 e 1: 0 FF 1 FF FF 0 poucas linhas 1 todas as linhas da tabela José Maria Monteiro UNIFOR Mini-curso SBBD /113 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 José Maria Monteiro UNIFOR Mini-curso SBBD /113 22

23 Fator de Filtro Estatísticas com a presença de Histograma: otimizador pode perceber distribuiçã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 José Maria Monteiro UNIFOR Mini-curso SBBD /113 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. José Maria Monteiro UNIFOR Mini-curso SBBD /113 23

24 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 José Maria Monteiro UNIFOR Mini-curso SBBD /113 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 José Maria Monteiro UNIFOR Mini-curso SBBD /113 24

25 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! José Maria Monteiro UNIFOR Mini-curso SBBD /113 Reescrita 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 José Maria Monteiro UNIFOR Mini-curso SBBD /113 25

26 Exemplo Oracle: Reescrita 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 José Maria Monteiro UNIFOR Mini-curso SBBD /113 Reescrita 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 José Maria Monteiro UNIFOR Mini-curso SBBD /113 26

27 Reescrita 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 José Maria Monteiro UNIFOR Mini-curso SBBD /113 Reescrita 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 José Maria Monteiro UNIFOR Mini-curso SBBD /113 27

28 Sem estatísticas Junções e Sub-Consultas select E.Ident, E.nome from empregado E where exists ( select * from dependente D where D.Idemp = E.Ident ) Execution Plan SELECT STATEMENT Optimizer=CHOOSE FILTER TABLE ACCESS (FULL) OF EMPREGADO' INDEX (RANGE SCAN) OF 'IDX_DEPENDENTE_IDEMP' (NO N-UNIQUE) José Maria Monteiro UNIFOR Mini-curso SBBD /113 Sem estatísticas Junções e Sub-Consultas select E.Ident, E.nome from Empregado E, Dependente D where D.Idemp = E.Ident Execution Plan SELECT STATEMENT Optimizer=CHOOSE NESTED LOOPS TABLE ACCESS (FULL) OF 'DEPENDENTE' TABLE ACCESS (BY INDEX ROWID) OF EMPREGADO' INDEX (UNIQUE SCAN) OF 'IDX_EMPREGADO_ID' (UNIQUE) José Maria Monteiro UNIFOR Mini-curso SBBD /113 28

29 Junções e Sub-Consultas Sem estatísticas select E.Ident, E.nome from Empregado E where E.Ident in ( select IdEmp from Dependente D) Execution Plan SELECT STATEMENT Optimizer=CHOOSE NESTED LOOPS VIEW OF 'VW_NSO_1' SORT (UNIQUE) TABLE ACCESS (FULL) OF 'DEPENDENTE' TABLE ACCESS (BY INDEX ROWID) OF EMPREGADO' Tuning INDEX e Self-Tuning (UNIQUE de SCAN) OF 'IDX_EMPREGADO_ID' (UNIQUE) José Maria Monteiro UNIFOR Mini-curso SBBD /113 Com estatísticas Execution Plan Junções e Sub-Consultas select E.Ident, E.nome from Empregado E where exists ( select * from Dependente D where D.Idemp = E.Ident ) select E.Ident, E.nome from Empregado E where E.Ident in ( select IdEmp from Dependente D) SELECT STATEMENT Optimizer=CHOOSE (Cost=10 Card=1640 Bytes=173840) HASH JOIN (SEMI) (Cost=10 Card=1640 Bytes=173840) TABLE ACCESS (FULL) OF 'EMPREGADO' (Cost=5 Card=2200 Bytes=226600) INDEX (FAST FULL SCAN) OF 'IDX_DEPENDENTE_IDEMP' (NON-UNIQUE) (Cost=2 Card=3000 Bytes=9000) José Maria Monteiro UNIFOR Mini-curso SBBD /113 29

30 Junções e Sub-Consultas Com estatísticas select E.Ident, E.nome from Empregado E, Dependente D where D.Idemp = E.Ident Execution Plan SELECT STATEMENT Optimizer=CHOOSE (Cost=8 Card=3000 Bytes=318000) HASH JOIN (Cost=8 Card=3000 Bytes=318000) INDEX (FAST FULL SCAN) OF 'IDX_DEPENDENTE_IDEMP' (NON-UNIQUE) (Cost=2 Card=3000 Bytes=9000) TABLE ACCESS (FULL) OF 'EMPREGADO' (Cost=5 Card=2200 Bytes=226600) José Maria Monteiro UNIFOR Mini-curso SBBD /113 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 José Maria Monteiro UNIFOR Mini-curso SBBD /113 30

31 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... José Maria Monteiro UNIFOR Mini-curso SBBD /113 Agenda o Introdução e Motivação o Conceitos e Fundamentos o Arquiteturas de SGBD, Arquivos e Índices o Processamento de Consultas e Operadores Relacionais o Tuning o Planos e Métodos de Acesso o Monitoramento e Ações o Self-tuning o Visão Geral do Estado da Arte o PUC-Rio o Adicionais Tuning e Comentários Finais José Maria Monteiro UNIFOR Mini-curso SBBD /113 31

32 Motivação para Self-tuning Sistemas de bancos de dados se tornam cada vez mais utilizados na nossa sociedade Sistemas de bancos de dados exigem profissionais especializados para a sua administração José Maria Monteiro UNIFOR Mini-curso SBBD /113 Idéia: Autonomic Computing Um grande desafio para a comunidade acadêmica: tornar os sistemas computacionais mais autônomos Ansilomar Report on Database Research (1998) IBM s Autonomic Computing Manifesto (2001) José Maria Monteiro UNIFOR Mini-curso SBBD /113 32

33 Autonomic Computing Ciclo Clássico José Maria Monteiro UNIFOR Mini-curso SBBD /113 Autonomic Computing José Maria Monteiro UNIFOR Mini-curso SBBD /113 33

34 Auto-Sintonia (Self-Tuning) Capacidade de auto-ajuste dos SGBDs ao ambiente para obter de melhor desempenho José Maria Monteiro UNIFOR Mini-curso SBBD /113 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; José Maria Monteiro UNIFOR Mini-curso SBBD /113 34

35 Auto-Sintonia (Self-Tuning) Alguns SGBDs comerciais possuem implementação de algumas características Trabalhos científicos: Muitos artigos sendo publicados nos últimos 10 anos! Self-Tuning Database Systems: A Decade of Progress (Chaudhuri et al., Microsoft Research, VLDB 2007) José Maria Monteiro UNIFOR Mini-curso SBBD /113 Auto-Sintonia (Self-Tuning) 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; Oracle 10g: Automatic Database Diagnostic Monitor SQL Server 2005: Database Tuning Advisor PostgreSQL; Pg_autovacuum Grupo de auto-sintonia em SGBDs do Departamento de Informática PUC-Rio. Índices Hipotéticos Survey Auto-Sintonia Global Heurística de Benefícios José Maria Monteiro UNIFOR Mini-curso SBBD /113 35

36 Possível Classificação Auto-Sintonia por Projeto Auto-Sintonia por Adaptação José Maria Monteiro UNIFOR Mini-curso SBBD /113 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 José Maria Monteiro UNIFOR Mini-curso SBBD /113 36

37 Possível Classificação José Maria Monteiro UNIFOR Mini-curso SBBD /113 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 José Maria Monteiro UNIFOR Mini-curso SBBD /113 37

38 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 José Maria Monteiro UNIFOR Mini-curso SBBD /113 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) José Maria Monteiro UNIFOR Mini-curso SBBD /113 38

39 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) José Maria Monteiro UNIFOR Mini-curso SBBD /113 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) José Maria Monteiro UNIFOR Mini-curso SBBD /113 39

40 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 José Maria Monteiro UNIFOR Mini-curso SBBD /113 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 José Maria Monteiro UNIFOR Mini-curso SBBD /113 40

41 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 José Maria Monteiro UNIFOR Mini-curso SBBD /113 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? Risco de criar-recriar inúmeras vezes José Maria Monteiro UNIFOR Mini-curso SBBD /113 41

42 Self-Tuning de índices SQL Server - José Maria Monteiro UNIFOR Mini-curso SBBD /113 Self-Tuning de índices QUIET - Quiet (Query-Driven Index Tuning) Sugestão automática de criação de índices Baseada em comandos proprietários DB2 Necessidade de reescrever aplicações existentes (cláusulas SQL) Impossibilidade de gerência de carga de trabalho submetida diretamente ao SGBD José Maria Monteiro UNIFOR Mini-curso SBBD /113 42

43 Self-Tuning de índices QUIET - José Maria Monteiro UNIFOR Mini-curso SBBD /113 Self-Tuning de índices COLT - COLT (Continuos On-Line Tuning) Monitora as consultas submetidas ao SGBD Ajuste automático da configuração de índices (criação e remoção) Implementado junto ao PostgreSQL Cada consulta é otimizada uma vez para cada índice candidato Sobrecarga José Maria Monteiro UNIFOR Mini-curso SBBD /113 43

44 Self-Tuning de índices COLT - José Maria Monteiro UNIFOR Mini-curso SBBD /113 Self-Tuning de índices [Luhring et al 2007] - - [Luhring et al 2007] Monitoramento contínuo + Periodicamente soluciona o ISP (criação/remoção) Segue o ciclo Observação/Predição/Reação Cada consulta é otimizada duas vezes José Maria Monteiro UNIFOR Mini-curso SBBD /113 44

45 Self-Tuning de índices AutoAdmin Online - - AutoAdmin Online Extensão do SQL Server 2005 Executa continuamente e reage a variações na carga de trabalho ou nos dados Modifica automaticamente o projeto físico do BD (criação e remoção) Cada consulta é executa uma única vez José Maria Monteiro UNIFOR Mini-curso SBBD /113 Self-Tuning de índices AutoAdmin Online - - José Maria Monteiro UNIFOR Mini-curso SBBD /113 45

46 Self-Tuning de índices PUC-Rio - Índices Hipotéticos Uso de SGBD completo de código aberto Simulação? Não! PostgreSQL (8.3.5) Linux Abordagem intrusiva Código core modificado Comando create hypothetical index/drop hypothetical index e explain hypothetical index José Maria Monteiro UNIFOR Mini-curso SBBD /113 Uso de Índices Hipotéticos Tutorial: estudo de caso para what-if Department Employee Product Sale id int name varchar(50) managerid int Number of tuples: 200 id int id int name varchar(50) type varchar(30) address varchar(200) description varchar(150) salary numeric(10,2) measure varchar(30) depid integer price numeric(5,2) Number of tupes: 100 Number of tuples: 250 id int year int month int day int prodid int sellerid int Price numeric(4,2) Number of tuples: 250 José Maria Monteiro UNIFOR Mini-curso SBBD /113 46

47 Consultas Freqüentes The following query is very frequently issued by the university application: select d.name, e.name, e.salary from employee e, department d where e.depid = d.id and e.salary between 1000 and 2500; Lets take a look at its query execution plan using the explain statement: explain select d.name, e.name, e.salary from employee e, department d where e.depid = d.id and e.salary between 1000 and 2500; José Maria Monteiro UNIFOR Mini-curso SBBD /113 Plano de Consulta Gerado Query Execution Plan QUERY PLAN Hash Join (cost= rows=2499 width=50) Hash Cond: ("outer".depid = "inner".id) -> Seq Scan on employee e (cost= rows=2498 width=42) Filter: ((salary >= 1000::numeric) AND (salary <= 2500::numeric)) -> Hash (cost= rows=26 width=16) -> Seq Scan on department d (cost= rows=26 width=16) (6 rows) A sequential scan was chosen by the planner to access the employee table. Perhaps we could improve this by creating an index on the salary column. José Maria Monteiro UNIFOR Mini-curso SBBD /113 47

48 Criando um Índice Hipotetico create hypothetical index hi_employee_salary on employee(salary); Although we could benefit from the existence of an index on the salary column, we should be careful to create it. Firstly, we do not know if the DBMS will actually choose to use an index in the salary column if it exists. Secondly, if we try to create an actual index in this column, the DBMS will prevent writers from accessing the table. So it is hard to experiment with new indexes and evaluate how good they are. Instead of incurring the burden of creating an actual index on the column, we could simulate if this index would be useful to the database. To do that, we create it as a hypothetical index: José Maria Monteiro UNIFOR Mini-curso SBBD /113 Plano de Consulta com Índices Hipotéticos explain hypothetical select d.name, e.name, e.salary from employee e, department d where e.depid = d.id and e.salary between 1000 and 2500; The hypothetical index is not actually materialized in the database. Therefore, we will not incur in heavy creation costs or obtain locks on the underlying table to create it. The DBMS, however, cannot use the hypothetical index to answer a user query. If we query the database again or use the explain statement, the system will still use a sequential scan to access the employee table. We can see how the DBMS would behave if the hypothetical index were materialized using the explain hypothetical statement: José Maria Monteiro UNIFOR Mini-curso SBBD /113 48

49 Análise de Custos com Índices Hipotéticos Query Execution Plan QUERY PLAN Hash Join (cost= rows=2499 width=50) Hash Cond: ("outer".depid = "inner".id) -> Index Scan using hi_employee_salary on employee e (cost= rows=2498 width=42) Index Cond: ((salary >= 1000::numeric) AND (salary <= 2500::numeric)) -> Hash (cost= rows=26 width=16) -> Seq Scan on department d (cost= rows=26 width=16) (6 rows)00 If the index hi_employee_salary was materialized, the DBMS would use it to process the query. The estimated cost to process the query would drop from using the sequential scan to using the index scan. José Maria Monteiro UNIFOR Mini-curso SBBD /113 Índices Hipotéticos eventualmente se tornam reais drop hypothetical index hi_employee_salary; create index i_employee_salary on employee(salary); Now that we know that the index is beneficial to performance, we can drop the hypothetical index and create a corresponding actual one: José Maria Monteiro UNIFOR Mini-curso SBBD /113 49

50 Plano de consulta com novo índice criado explain select d.name, e.name, e.salary from employee e, department d where e.depid = d.id and e.salary between 1000 and 2500; Lets check the query execution plan for the query with the actual index created: José Maria Monteiro UNIFOR Mini-curso SBBD /113 Análise dos custos Query Execution Plan QUERY PLAN Hash Join (cost= rows=2491 width=50) Hash Cond: ("outer".depid = "inner".id) -> Index Scan using i_employee_salary on employee e (cost= rows=2490 width=42) Index Cond: ((salary >= 1000::numeric) AND (salary <= 2500::numeric)) -> Hash (cost= rows=26 width=16) -> Seq Scan on department d (cost= rows=26 width=16) (6 rows) The cost estimated by the planner for the query using the hypothetical index was With the actual index, the planner gave us an estimate of Cost estimates for hypothetical indexes tend to be conservative, but always close to the cost of using the actual index. José Maria Monteiro UNIFOR Mini-curso SBBD /113 50

51 Modelo local SGBD Componente de Auto-Sintonia Avaliação de métricas e alterações na execução (AS e EPA) Self-Tuning de índices PUC-Rio - 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) Componente N Componente N + 1 Componente M Área sendo ajustada Coleta de informações sobre execução final (CI) Componente M + 1 José Maria Monteiro UNIFOR Mini-curso SBBD /113 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 José Maria Monteiro UNIFOR Mini-curso SBBD /113 51

52 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 Ação Raciocínio Crença Sensor José Maria Monteiro UNIFOR Mini-curso SBBD /113 Agentes e Self-Tuning Agente em camada e etapas do Self-tuning (Costa e Lifschitz, CLEI 2002) 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 José Maria Monteiro UNIFOR Mini-curso SBBD /113 52

53 SGBDs baseados em Agentes e Self-Tuning Modelo global com agentes SGBD Envio de informações a outros agentes de Self-tuning Informações provenientes de outros agentes de Self-tuning Gravação de dados Agente de Self-tuning Local Troca de informações Área sendo ajustada Componente N Componente N + 1 Componente M Lembrança de operações passadas (dados persistentes) Leitura de dados Componente M +1 José Maria Monteiro UNIFOR Mini-curso SBBD /113 Modelo Global José Maria Monteiro UNIFOR Mini-curso SBBD /113 53

54 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; José Maria Monteiro UNIFOR Mini-curso SBBD /113 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 José Maria Monteiro UNIFOR Mini-curso SBBD /113 54

55 Self-Tuning de índices PUC-Rio - Criação autônoma de índices TPC-C, sintonia local, heurística de benefícios, PostgreSQL José Maria Monteiro UNIFOR Mini-curso SBBD /113 Self-Tuning de índices PUC-Rio - José Maria Monteiro UNIFOR Mini-curso SBBD /113 55

56 Arquitetura do Componente de Auto-sintonia José Maria Monteiro UNIFOR Mini-curso SBBD /113 Heurística de Benefícios Seja B(e j,q k ) o beneficio proporcionado pela estrutura e j para o processamento de uma tarefa q k. Este beneficio pode ser formalmente definido como: onde, cost(q k ) representa o custo de execução da tarefa q k sem a utilização da estrutura e j e cost(q k, e j ) representa o custo de execução da tarefa q k utilizando-se a estrutura de acesso e j ; Observe que se cost(q k ) cost(q k, e j ) > 0, a utilização da estrutura e j contribui para aumentar o desempenho da tarefa q k, logo: Be j,q k > 0; Caso contrario, a utilização da estrutura e j não proporciona nenhuma melhoria no desempenho da tarefa q k, podendo inclusive, se fosse utilizada, reduzir este desempenho (cost(q k ) cost(q k, e j ) < 0). Contudo, neste caso, a estrutura ej não seria utilizada pelo otimizador do SGBD, e, por conseguinte, Be j,q k = 0 José Maria Monteiro UNIFOR Mini-curso SBBD /113 56

57 Heurística de Benefícios O beneficio acumulado de uma determinada estrutura de acesso ej, representado por (BAej ), corresponde a soma dos seus benefícios para cada uma das tarefas anteriormente executadas. Logo: onde, NQWt é o numero total de tarefas da carga de trabalho. José Maria Monteiro UNIFOR Mini-curso SBBD /113 Heurística de Benefícios 1. Para cada comando q k capturado faça: 2. Otimize q k dada a configuração real de índices cost R (q k ) + I R 3. Otimize q k dada a configuração de índices hipotéticos e reais cost H (q k ) + I H 4. Otimize dada uma configuração sem índices cost S (q k ) 5. Para cada índice hipotético i em I H faça: 6. B i,q k = max{0, cost R (q k ) - cost H (q k )} 7. BA i = BA i + B i,q k 8. Se BA i > EC Ci 9. Criar o índice i + bonus i = BA i / Qtd José Maria Monteiro UNIFOR Mini-curso SBBD /113 57

58 Heurística de Benefícios 1. P ara cada comando q k capturado faça: 10. Para cada índice real r em I R faça: 11. B r,q k = max{0, cost S (q k ) - cost R (q k )} 12. BA r = BA r + B r,q k / BA r = BA r + bonus r 13. Se é q k é uma atualização 14. Para cada índice i afetado por q k faça: 15. BA i = BA i EC Ai 16. Se (i é real) e (BA i < 0) e ( BA i >EC Ci ) 17. BA i = - EC Ci 18. Remover o índice i José Maria Monteiro UNIFOR Mini-curso SBBD /113 Resultados Experimentais Testes com DBT-2 toolkit Carga TPC-C Estudos de caso: Sem índice: BD sem índices e agente desligado Índice Automático: BD sem índices e agente ligado Indexação estática: DB com índices propostos pelos projetistas do toolkit e agente desligado Resultados surpreendentes! Um índice dos projetistas não criado Um índice não projetado criado... Porém útil! José Maria Monteiro UNIFOR Mini-curso SBBD /113 58

59 Throughput (tr/min) Avaliação de Vazão (Throughput) Escala do BD: # de armazéns Teste de 90 min: período de aprendizado ok No indexing Automatic Indexing Static indexing Number of Warehouses José Maria Monteiro UNIFOR Mini-curso SBBD /113 Análise dos Resultados O componentes conseguiu obter boa vazão média para a aplicação em questão O componente-agente passa por fase de aprendizado até atingir estabilidade Quanto mais tempo o componente estiver ativo com carga estável, melhor é a vazão observada do sistema José Maria Monteiro UNIFOR Mini-curso SBBD /113 59

60 Self-Tuning de índices PUC-Rio - Destruição e reindex automáticos TPC-H, sintonia global, fragmentação física José Maria Monteiro UNIFOR Mini-curso SBBD /113 Estudos com carga OLAP TPC-H 6 consultas representativas (das 22) Consultas muito demoradas Novo comando Evaluate select linenumber, quantity from lineitem where orderkey = 200 and linenumber = 2; José Maria Monteiro UNIFOR Mini-curso SBBD /113 60

61 Resultados Experimentais Testes com DBT-2 toolkit agora com carga TPC-H Três estudos de caso como anteriormente Mesma carga submetida para SGBDs comerciais SQL 2005 e Oracle 10g Novo índice criado... E útil!!! Heurística de benefícios alterada Critério histórico Bônus = Benefício Acumulado / Utilizações O ideal seria calcular a contribuição exata de cada índice por comando submetido E.g. Chaudhuri et al 2004 Malus? José Maria Monteiro UNIFOR Mini-curso SBBD /113 Resultados Experimentais (2) Testes com DBT-2 toolkit novamente com TPC-C Três estudos de caso como anteriormente Mais consultas, ajustes na carga submetida Captura de poucas consultas agora não é bom... Índices eliminados foram recriados!!! José Maria Monteiro UNIFOR Mini-curso SBBD /113 61

62 Recriação de Índices Malefícios Causados pela Fragmentação de Índices Fragmentação prejudica desempenho para varreduras: confirmado! Fragmentação aumenta espaço ocupado por um índice: confirmado! Fragmentação x Custo: confirmado?! José Maria Monteiro UNIFOR Mini-curso SBBD /113 Fragmentação no Nível Folha José Maria Monteiro UNIFOR Mini-curso SBBD /113 62

63 Fragmentação de Índices Idéia básica: Índices fragmentados merecem nova chance! Novos critérios antes de um drop Grau de fragmentação G = 100 [(Ra/Ri) * 100] Tamanho do índice Taxa de varreduras Novo comando: getsize José Maria Monteiro UNIFOR Mini-curso SBBD /113 Agenda o Introdução e Motivação o Conceitos e Fundamentos o Arquiteturas de SGBD, Arquivos e Índices o Processamento de Consultas e Operadores Relacionais o Tuning o Planos e Métodos de Acesso o Monitoramento e Ações o Self-tuning o Visão Geral do Estado da Arte o PUC-Rio o Adicionais Tuning e Comentários Finais José Maria Monteiro UNIFOR Mini-curso SBBD /113 63

64 Técnicas de Tuning 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... José Maria Monteiro UNIFOR Mini-curso SBBD /113 Utilização da Memória SGBDs utilizam a memória para armazenar: Dados mais recentemente acessados. Operações de atualização realizadas por usuários podem fazer com que existam em memória várias versões da mesma informação; Informações sobre árvores de execução de comandos SQL; Informações sobre a instância utilizada e a base de dados acessada; Processos do servidor e seus parâmetros de controle; José Maria Monteiro UNIFOR Mini-curso SBBD /113 64

65 Utilização da Memória Para melhorar desempenho: Aumentar memória principal: nem sempre é a solução => realocar memória Aumentar memória para o SGBD: concorrência com outros programas no servidor Manter na memória as informações que são realmente necessárias José Maria Monteiro UNIFOR Mini-curso SBBD /113 Estruturas de Memória Database Buffer Cache Contém cópias de blocos de dados lidos de arquivos Único para os processos de todos os usuários conectados Buffers organizados em listas - geralmente LRU José Maria Monteiro UNIFOR Mini-curso SBBD /113 65

66 Estruturas de Memória Quando uma informação é acessada, SGBD procura essa informação no database buffer cache. Se encontra (cache hit) os dados são utilizados diretamente da memória. Se não (cache miss), o bloco de dados é copiado do arquivo de dados para o database buffer cache e, então, utilizado. Um alto número de cache misses pode ser um indicador de problemas de desempenho José Maria Monteiro UNIFOR Mini-curso SBBD /113 Finalidade: Buffer Cache manter páginas mais usadas em memória reduzir operações de I/O Leitura lógica página desejada pode estar ou não no BP Leitura física necessário realizar operação de I/O José Maria Monteiro UNIFOR Mini-curso SBBD /113 66

67 Buffer Cache Eficiência do Buffer Pool: hit ratio hit ratio logical reads physical logical reads reads 100% Desejável: hit ratio > 95% depende das características do sistema José Maria Monteiro UNIFOR Mini-curso SBBD /113 Equilibrando I/O Mapeamento entre tabelas / índices e os data files Tabela Tablespace Índice Índice Tablespace José Maria Monteiro UNIFOR Mini-curso SBBD /113 67

68 Estrutura de Armazenamento Tabelas e índices alocam um espaço no banco de dados quando são criados => tamanho inicial. A medida que crescem, podem surgir extensões, que podem não ser contíguas; Fragmentação pode gerar problema de desempenho; José Maria Monteiro UNIFOR Mini-curso SBBD /113 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? José Maria Monteiro UNIFOR Mini-curso SBBD /113 68

69 Agradecimentos Sérgio Lifschitz Ana Carolina, Morelli, Maíra, Marcos, Anolan, Rogério, Tonho, Pedro José Maria Monteiro UNIFOR Mini-curso SBBD /113 Perguntas? OBRIGADO! José Maria Monteiro UNIFOR Mini-curso SBBD /113 69

70 Alguns conceitos... Plano de acesso: caminhos e formas de acesso que serão utilizados pelo SGBD para atender a uma requisição SQL Otimizador: componente do SGBD responsável por montar o plano de acesso aos dados => independência da consulta com relação ao formato de armazenamento dos dados José Maria Monteiro UNIFOR Mini-curso SBBD /113 Distribuição de Arquivos I/O paralelo => diminui a disputa por disco. Dividir arquivos de maior acesso em diferentes discos. Manter em discos separados: Tablespaces do sistema; Arquivos de dados com tabelas muito acessadas; Arquivos de índices para tabelas muito acessadas; José Maria Monteiro UNIFOR Mini-curso SBBD /113 70

71 Row Migration page n update t1 set c1 = header L1 F/V 1 L2 F/V 2 L3 F/V 3 L4 F/V 4... ANTES page n header page p DEPOIS header L1 F/V 1 L2 F/V 2 L3 F/V 3 L4 F/V 4 José Maria Monteiro UNIFOR Mini-curso SBBD /113 Row Chaining page k page p page t header L1 F/V 1 L2 F/V 2 L3 F/V 3 L4 F/V 4 page k Representação lógica header L1 F/V 1 page p header L2 F/V 2 page t Armazenamento físico header L3 F/V 3 L4 F/V 4 José Maria Monteiro UNIFOR Mini-curso SBBD /113 71

72 Eliminando Fragmentação Aloque o espaço adequado na criação do objeto Recrie o objeto, possivelmente movendo para novo tablespace => crie o objeto com o espaço adequado; Exporte e reimporte a tabela José Maria Monteiro UNIFOR Mini-curso SBBD /113 Particionamento Decomposição de grandes objetos em objetos menores =>partições. Cada partição física possui seus próprios atributos físicos => podem ser armazenadas até mesmo em tablespaces diferentes! Pode ser realizado com dados e com índices. José Maria Monteiro UNIFOR Mini-curso SBBD /113 72

73 Particionamento Exemplo: CREATE TABLE vendas (idvenda NUMBER(5), data DATE, ValorTotal NUMBER(15,3)) PARTITION BY RANGE (data) (PARTITION data1 VALUES LESS THAN TO_DATE('01/04/2004','DD/MM/YYYY') TABLESPACE ts1, PARTITION data2 VALUES LESS THAN TO_DATE('01/07/2004','DD/MM/YYYY') TABLESPACE ts2... PARTITION data4 VALUES LESS THAN TO_DATE('01/01/2005','DD/MM/YYYY') TABLESPACE ts4) José Maria Monteiro UNIFOR Mini-curso SBBD /113 Particionamento Pode ocorrer por intervalos de valores (de uma ou mais colunas), hash e lista. Sub-particionamento => partições para cada partição. Exemplo: partição por estados e, para cada estado, sub-partição por intervalo de datas José Maria Monteiro UNIFOR Mini-curso SBBD /113 73

74 Particionamento Otimizador pode acessar somente uma partição na realização de consultas. Em tabelas com mesmas chave de particionamento e pontos de quebra, as junções podem ser realizadas por partições José Maria Monteiro UNIFOR Mini-curso SBBD /113 Métodos de Acesso SQL Server Principais métodos de acesso: Table Scan: percorre toda a tabela Index Scan/Clustered Index Scan: percorre todo o nível folha do índice Bookmark Lookup: procura uma linha na tabela ou índice baseado em seu rowid Index Seek/Clustered Index Seek: percorre parte do índice recuperando informações de algumas chaves José Maria Monteiro UNIFOR Mini-curso SBBD /113 74

75 Métodos de Acesso Oracle Principais métodos de acesso: Full Table Scan: leitura seqüencial de todas as páginas de uma tabela Index Unique Scan: acessa uma única linha, garantido por constraint Index Range Scan: acessa subconjunto dos dados de forma ordenada Index Skip Scan: acesso indexado quando as colunas que prefixam o índice composto não são especificadas Fast Full Index Scan: usado quando o índice cobre a consulta José Maria Monteiro UNIFOR Mini-curso SBBD /113 Self-tuning de índices baseado em diferenças Modelo Geral Otimizador de consultas gera plano de execução Agente de self-tuning de índices verifica se existe a possibilidade de criação de índices que auxiliem na consulta índices hipotéticos Em caso afirmativo, novo plano é gerado considerando os índices hipotéticos Os ganhos da execução da consulta com índices hipotéticos são comparados com custos de criação dos índices em questão José Maria Monteiro UNIFOR Mini-curso SBBD /113 75

76 Self-tuning de índices baseado em diferenças Avaliação de consultas C = C R C H; Se C > C I então: Criar índice; Executar consulta; Senão, Executar consulta; Avaliar operações anteriores; Fim-se; C R = Custo com índices existentes C H = Custo com índices hipotéticos C I = Custo de criação de índices C= Ganho na execução da consulta com índices hipotéticos José Maria Monteiro UNIFOR Mini-curso SBBD /113 Self-tuning de índices baseado em diferenças Avaliação de operações anteriores Se C A + C > C I, então Criar índice; Apagar C A ; Senão, Fazer C A = C A + C ; Fim-se; C A = Custo armazenado de possíveis ganhos C I = Custo de criação de índices C= Ganho na execução da consulta com índices hipotéticos José Maria Monteiro UNIFOR Mini-curso SBBD /113 76

77 Self-tuning de índices baseado em diferenças C = C Avaliação de R C H ; Se C > 0 operações atualização Se C > C I então: Criar índice; C e exclusões R = Custo com índices existentes Executar operação; Senão, C H = Custo com índices hipotéticos Executar operação; Avaliar operações anteriores; C I = Custo de criação de índices Fim-se; Senão, C A = Custo armazenado de C A = C A - C; possíveis ganhos Se C A = C I então, Se índice existe, destruir índice; C I = Custo de criação de índices Executar operação; Apagar C A ; Fim-se; José Maria Monteiro UNIFOR Fim-se; Mini-curso SBBD /113 77

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

Self ou Auto-tuning?

Self ou Auto-tuning? 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 sergio@inf.puc-rio.br Self ou

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

SQL Linguagem de Definição de Dados. Banco de Dados Profa. Dra. Cristina Dutra de Aguiar Ciferri SQL Linguagem de Definição de Dados Banco de Dados SQL Structured Query Language Uma das mais importantes linguagens relacionais (se não a mais importante) Exemplos de SGBD que utilizam SQL Oracle Informix

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

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

Bases de Dados II 6638: BSc in Information Systems and Technologies. Cap. 1 Arquitectura de Sistemas de Bases de Dados. Module Introduction

Bases de Dados II 6638: BSc in Information Systems and Technologies. Cap. 1 Arquitectura de Sistemas de Bases de Dados. Module Introduction Bases de Dados II 6638: BSc in Information Systems and Technologies Cap. 1 Module Introduction Objectivos O propósito e a origem da arquitectura de base de dados a três níveis. O conteúdo dos níveis externo,

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

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

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

SISTEMAS DE BANCO DE DADOS. Prof. Adriano Pereira Maranhão

SISTEMAS DE BANCO DE DADOS. Prof. Adriano Pereira Maranhão SISTEMAS DE BANCO DE DADOS Prof. Adriano Pereira Maranhão 1 REVISÃO BANCO DE DADOS I O que é banco de dados? Ou seja afinal o que é um SGBD? REVISÃO BD I REVISÃO DE BD I Um Sistema de Gerenciamento de

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

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. 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

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

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

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

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

FEAP - Faculdade de Estudos Avançados do Pará PROFª LENA VEIGA PROJETOS DE BANCO DE DADOS UNIDADE V- SQL

FEAP - Faculdade de Estudos Avançados do Pará PROFª LENA VEIGA PROJETOS DE BANCO DE DADOS UNIDADE V- SQL Quando os Bancos de Dados Relacionais estavam sendo desenvolvidos, foram criadas linguagens destinadas à sua manipulação. O Departamento de Pesquisas da IBM desenvolveu a SQL como forma de interface para

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

Núcleo de Pós Graduação Pitágoras

Núcleo de Pós Graduação Pitágoras Núcleo de Pós Graduação Pitágoras Professor: Fernando Zaidan Disciplina: Modelagem e Projeto de Banco de Dados Especialização em Tecnologia da Informação - Ênfases Março- 2009 1 Modelo Físico Introdução

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

Dicas para uso de VLDB (very large databases)

Dicas para uso de VLDB (very large databases) Dicas para uso de VLDB (very large databases) Slide 1 Considerações e Marcas Registradas As informações contidas nesta apresentação não foram submetidas à nenhuma revisão formal e é distribuída sem nenhuma

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

SQL DML. Frederico D. Bortoloti freddb@ltc.ufes.br

SQL DML. Frederico D. Bortoloti freddb@ltc.ufes.br Banco de Dados I SQL DML Frederico D. Bortoloti freddb@ltc.ufes.br SQL - DML Os exemplos da aula serão elaborados para o esquema de dados a seguir: Empregado(matricula, nome, endereco, salario, supervisor,

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

SQL SQL BANCO DE DADOS 2. Componentes do SQL (1) Componentes do SQL (2) DDL Criação de banco de dados. Padrões de SQL

SQL SQL BANCO DE DADOS 2. Componentes do SQL (1) Componentes do SQL (2) DDL Criação de banco de dados. Padrões de SQL BANCO DE DADOS 2 SQL (CREATE TABLE, CONSTRAINTS, DELETE, UPDATE e INSERT) Prof. Edson Thizon SQL SQL ( structured query language ) é uma linguagem comercial de definição e manipulação de banco de dados

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

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

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

Estatística, monitoramento e diagnóstico através do catálogo do PostgreSQL

Estatística, monitoramento e diagnóstico através do catálogo do PostgreSQL Estatística, monitoramento e diagnóstico através do catálogo do PostgreSQL O trabalho Estatística, monitoramento e diagnóstico através do catálogo do PostgreSQL de Fabiano Machado Dias e Eduardo Wolak

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

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

Aula 2 Arquitetura Oracle

Aula 2 Arquitetura Oracle Aula 2 Arquitetura Oracle Instancia Oracle Uma instância Oracle é composta de estruturas de memória e processos. Sua existência é temporária na memória RAM e nas CPUs. Quando você desliga a instância em

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

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

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

BANCO DE DADOS II LINGUAGEM SQL - STRUCTURED QUERY LANGUAGE. Prof.: Elvis Bloemer Meurer

BANCO DE DADOS II LINGUAGEM SQL - STRUCTURED QUERY LANGUAGE. Prof.: Elvis Bloemer Meurer BANCO DE DADOS II LINGUAGEM SQL - STRUCTURED QUERY LANGUAGE Prof.: Elvis Bloemer Meurer ORLEANS, 2011 1 CAPITULO 6: FUNÇÕES DE GRUPO...4 6.1 OBJETIVOS DESTE CAPÍTULO...4 6.2 FUNÇÕES DISPONÍVEIS...4 6.3

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

A empresa brasileira de PostgreSQL

A empresa brasileira de PostgreSQL PostgreSQL 9.4: O que vem por aí A empresa brasileira de PostgreSQL 03/03/2015 Sobre este material Copyright 2015 Timbira. Todos os direitos reservados. Embora este material tenha sido elaborado com toda

Leia mais

PHP INTEGRAÇÃO COM MYSQL PARTE 1

PHP INTEGRAÇÃO COM MYSQL PARTE 1 INTRODUÇÃO PHP INTEGRAÇÃO COM MYSQL PARTE 1 Leonardo Pereira leonardo@estudandoti.com.br Facebook: leongamerti http://www.estudandoti.com.br Informações que precisam ser manipuladas com mais segurança

Leia mais

Unidade 5 Armazenamento e Indexação

Unidade 5 Armazenamento e Indexação Unidade 5 Armazenamento e Indexação Engenharia de Computação / Engenharia de Produção Banco de Dados Prof. Maria das Graças da Silva Teixeira Material base: Banco de Dados, 2009.2, prof. Otacílio José

Leia mais

ADMINISTRAÇÃO DE BANCO DE DADOS

ADMINISTRAÇÃO DE BANCO DE DADOS ADMINISTRAÇÃO DE BANCO DE DADOS ARTEFATO 02 AT02 Diversos I 1 Indice ESQUEMAS NO BANCO DE DADOS... 3 CRIANDO SCHEMA... 3 CRIANDO TABELA EM DETERMINADO ESQUEMA... 4 NOÇÕES BÁSICAS SOBRE CRIAÇÃO E MODIFICAÇÃO

Leia mais

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011

Banco de Dados I. Aula 12 - Prof. Bruno Moreno 04/10/2011 Banco de Dados I Aula 12 - Prof. Bruno Moreno 04/10/2011 Plano de Aula SQL Definição Histórico SQL e sublinguagens Definição de dados (DDL) CREATE Restrições básicas em SQL ALTER DROP 08:20 Definição de

Leia mais

ESTRUTURA INTERNA DO SISTEMA ESTRUTURA GERAL DO SGBD. Desempenho do BD ÙSatisfação do usuário. A performance do sistema depende:

ESTRUTURA INTERNA DO SISTEMA ESTRUTURA GERAL DO SGBD. Desempenho do BD ÙSatisfação do usuário. A performance do sistema depende: ESTRUTURA INTERNA DO SISTEMA ESTRUTURA GERAL DO SGBD Desempenho do BD ÙSatisfação do usuário USUÁRIO A performance do sistema depende: da eficiência das estruturas de dados utilizadas; como o sistema opera

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

Introdução a Computação

Introdução a Computação Introdução a Computação Aula 04 SGBD Sistemas Gerenciadores de Bancos de Dados Prof. MSc. Edilberto Silva edilms@yahoo.com Conceitos Básicos DADOS: são fatos em sua forma primária. Ex: nome do funcionário,

Leia mais

Gerenciamento de um Sistema de

Gerenciamento de um Sistema de SBD Gerenciamento de um Sistema de Banco de Dados Prof. Michel Nobre Muza ua michel.muza@ifsc.edu.br Prof. Marcos Antonio Viana Nascimento Por que é importante: Motivação Participar na organização e no

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

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

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

Structured Query Language (SQL)

Structured Query Language (SQL) SQL Histórico Structured Query Language (SQL) Foi desenvolvido pela IBM em meados dos anos 70 como uma linguagem de manipulação de dados (DML - Data Manipulation Language) para suas primeiras tentativas

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

SQL S Q L. Introdução. Enfoques de SQL. SQL - Origem/Histórico. Usos de SQL. SQL - Vantagens. Banco de Dados. Fernando Fonseca Ana Carolina

SQL S Q L. Introdução. Enfoques de SQL. SQL - Origem/Histórico. Usos de SQL. SQL - Vantagens. Banco de Dados. Fernando Fonseca Ana Carolina Introdução Banco de Dados SQL Fernando Fonseca Ana Carolina SQL - Structured Query Language Linguagem de Consulta Estruturada Apesar do QUERY no nome, não é apenas de consulta, permitindo definição (DDL)

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

Sumário. Capítulo 2 Conceitos Importantes... 32 Tópicos Relevantes... 32 Instance... 33 Base de Dados... 36 Conclusão... 37

Sumário. Capítulo 2 Conceitos Importantes... 32 Tópicos Relevantes... 32 Instance... 33 Base de Dados... 36 Conclusão... 37 7 Sumário Agradecimentos... 6 Sobre o Autor... 6 Prefácio... 13 Capítulo 1 Instalação e Configuração... 15 Instalação em Linux... 15 Instalação e Customização do Red Hat Advanced Server 2.1... 16 Preparativos

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

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

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

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

Gabarito - Banco de Dados SQL - 30/07/2013 AULA 01

Gabarito - Banco de Dados SQL - 30/07/2013 AULA 01 Gabarito - Banco de Dados SQL - 30/07/2013 AULA 01 1 1- Bancos de dados compreendem desde agendas telefônicas até sistemas computadorizados. (Sim) 2- Só podemos instalar o SQL Server Express se tivermos

Leia mais

Ex.: INSERT INTO tmpautor (CDAUTOR, NMAUTOR) VALUES (1, Renato Araújo )

Ex.: INSERT INTO tmpautor (CDAUTOR, NMAUTOR) VALUES (1, Renato Araújo ) PRONATEC - Programador de Sistemas Banco de Dados 1) Incluindo linhas nas tabelas a. Para incluir linhas em tabelas utilize o comando INSERT INTO INSERT INTO tabela [ ( coluna [, coluna,...] ) ] VALUES

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

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

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

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas:

Álgebra Relacional. Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída. Operações básicas: Álgebra Relacional Conjunto de operações que usa uma ou duas relações como entrada e gera uma relação de saída operação (REL 1 ) REL 2 operação (REL 1,REL 2 ) REL 3 Operações básicas: seleção projeção

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

EXEMPLOS DE COMANDOS NO SQL SERVER

EXEMPLOS DE COMANDOS NO SQL SERVER EXEMPLOS DE COMANDOS NO SQL SERVER Gerenciando Tabelas: DDL - DATA DEFINITION LANGUAG Criando uma tabela: CREATE TABLE CLIENTES ID VARCHAR4 NOT NULL, NOME VARCHAR30 NOT NULL, PAGAMENTO DECIMAL4,2 NOT NULL;

Leia mais

Programação SQL. Introdução

Programação SQL. Introdução Introdução Principais estruturas duma Base de Dados: Uma BD relacional é constituída por diversas estruturas (ou objectos ) de informação. Podemos destacar: Database: designa a própria BD; Table/Tabela:

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

Algoritmos para Processamento e Otimização de Consultas. Adriano Douglas Girardello Ana Paula Fredrich Tiago Alexandre Schulz Sippert

Algoritmos para Processamento e Otimização de Consultas. Adriano Douglas Girardello Ana Paula Fredrich Tiago Alexandre Schulz Sippert UNIOESTE Universidade Estadual do Oeste do Paraná CENTRO DE CIÊNCIAS EXATAS E TECNOLÓGICAS Colegiado de Informática Curso de Bacharelado em Informática Algoritmos para Processamento e Otimização de Consultas

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

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 - Senado

Banco de Dados - Senado Banco de Dados - Senado Structured Query Language (SQL) Material preparado :Prof. Marcio Vitorino Ambiente Simplificado de um SGBD 2 Características dos SGBDs Natureza auto-contida de um sistema de banco

Leia mais

Banco de Dados 1 Prof. MSc Wagner Siqueira Cavalcante

Banco de Dados 1 Prof. MSc Wagner Siqueira Cavalcante Banco de Dados 1 Programação sucinta do curso:. Conceitos fundamentais de Banco de Dados.. Arquitetura dos Sistemas Gerenciadores de Banco de Dados (SGBD ou DBMS).. Características típicas de um SGBD..

Leia mais

CURSO DE ADMINISTRAÇÃO DE BANCO DE DADOS

CURSO DE ADMINISTRAÇÃO DE BANCO DE DADOS CURSO DE ADMINISTRAÇÃO DE BANCO DE DADOS ADMINISTRAÇÃO DE BANCO DE DADOS... 4 DEFINIÇÕES PRELIMINARES... 4 HISTÓRIA... 4 TAREFAS DO ADMINISTRADOR DE BANCO DE DADOS:... 5 Instalar o SGBD... 5 Implementar

Leia mais

Analysis Services. Manual Básico

Analysis Services. Manual Básico Analysis Services Manual Básico Construindo um Banco de Dados OLAP... 2 Criando a origem de dados... 3 Definindo as dimensões... 5 Níveis de dimensão e membros... 8 Construindo o cubo... 11 Tabela de fatos...12

Leia mais