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

Bancos de Dados IV. Tuning de Bancos de Dados. Rogério Costa

Bancos de Dados IV. Tuning de Bancos de Dados. Rogério Costa Bancos de Dados IV Tuning de Bancos de Dados Rogério Costa rogcosta@inf.puc-rio.br 1 Sintonia (Tuning) de Bancos de Dados O que é? Realizar ajustes de forma a obter um melhor tempo de resposta para determinada

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

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

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

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

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

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

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

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

Fundamentos de Sistemas Operacionais

Fundamentos de Sistemas Operacionais Fundamentos de Sistemas Operacionais Sistema de Arquivos - II Prof. Galvez Implementação de Arquivos Arquivos são implementados através da criação, para cada arquivo no sistema, de uma estrutura de dados

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

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

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

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

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

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

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

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

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

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

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

SGBD. Funções Básicas de um SGBD

SGBD. Funções Básicas de um SGBD Definição Sistema cujo objetivo principal é gerenciar o acesso e a correta manutenção dos dados armazenados em um banco dados. Funções básicas Métodos acesso Integrida Semântica Segurança Concorrência

Leia mais

Fundamentos de Banco de Dados

Fundamentos de Banco de Dados Fundamentos de Banco de Dados SISTEMAS BASEADOS NO PROCESSAMENTO DE ARQUIVOS Sistema A Funcionário Pagamento Cargo Sistema B Funcionário Projeto SISTEMAS GERENCIADORES DE BANCO DE DADOS (SGBD) Sistema

Leia mais

Programação com acesso a BD. Prof.: Clayton Maciel Costa clayton.maciel@ifrn.edu.br

Programação com acesso a BD. 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 Introdução BD desempenha papel crítico em todas as áreas em que computadores são utilizados: Banco: Depositar ou retirar

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

Estruturas de Armazenamento e Indexação. Rafael Lage Moreira Barbosa 10.1.4217

Estruturas de Armazenamento e Indexação. Rafael Lage Moreira Barbosa 10.1.4217 Estruturas de Armazenamento e Indexação Rafael Lage Moreira Barbosa 10.1.4217 Estruturas de Armazenamento Banco de Dados são armazenados fisicamente como arquivos de registro, que em geral ficam em discos

Leia mais

Banco de Dados. Uma coleção de dados relacionados [ELMASRI/NAVATHE]

Banco de Dados. Uma coleção de dados relacionados [ELMASRI/NAVATHE] 1/6 Banco de Dados O que é um Banco de Dados? Uma coleção de dados relacionados [ELMASRI/NAVATHE] Conjunto de dados integrados que tem por objetivo atender a uma comunidade específica [HEUSER] Um conjunto

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

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 Conceitos e Arquitetura Vantagens das Arquiteturas C/S (em relação

Leia mais

*O RDBMS Oracle é um sistema de gerenciamento de banco de dados relacional.

*O RDBMS Oracle é um sistema de gerenciamento de banco de dados relacional. Arquitetura Oracle e seus componentes Hoje irei explicar de uma forma geral a arquitetura oracle e seus componentes. Algo que todos os DBA s, obrigatoriamente, devem saber de cabo a rabo. Vamos lá, e boa

Leia mais

Banco de Dados. Introdução. João Eduardo Ferreira Osvaldo Kotaro Takai. jef@ime.usp.br DCC-IME-USP

Banco de Dados. Introdução. João Eduardo Ferreira Osvaldo Kotaro Takai. jef@ime.usp.br DCC-IME-USP Banco de Dados Introdução João Eduardo Ferreira Osvaldo Kotaro Takai jef@ime.usp.br DCC-IME-USP Importância dos Bancos de Dados A competitividade das empresas depende de dados precisos e atualizados. Conforme

Leia mais

Evolução. Tópicos. Bancos de Dados - Introdução. Melissa Lemos. Evolução dos Sistemas de Informação Esquemas Modelos. Características de SGBDs

Evolução. Tópicos. Bancos de Dados - Introdução. Melissa Lemos. Evolução dos Sistemas de Informação Esquemas Modelos. Características de SGBDs 1 Bancos de Dados - Introdução Melissa Lemos melissa@inf.puc-rio.br Tópicos Evolução dos Sistemas de Informação Esquemas Modelos Conceitual Lógico Características de SGBDs 2 Evolução tempo Programas e

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

INTRODUÇÃO. Diferente de Bando de Dados

INTRODUÇÃO. Diferente de Bando de Dados INTRODUÇÃO Diferente de Bando de Dados 1 INTRODUÇÃO DADOS São fatos conhecidos que podem ser registrados e que possuem significado. Ex: venda de gasolina gera alguns dados: data da compra, preço, qtd.

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

Otimização e Execução de Consultas Caso Centralizado Parse Query

Otimização e Execução de Consultas Caso Centralizado Parse Query Bancos de Dados III Processamento de Consultas em Bancos de Dados Distribuídos Rogério Costa rogcosta@inf.puc-rio.br 1 Otimização e Execução de Consultas Caso Centralizado Parse Query Check de Semântica

Leia mais

Introdução Banco de Dados

Introdução Banco de Dados Introdução Banco de Dados Vitor Valerio de Souza Campos Adaptado de Vania Bogorny Por que estudar BD? Os Bancos de Dados fazem parte do nosso dia-a-dia: operação bancária reserva de hotel matrícula em

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 emorelli@inf.puc-rio.br Ana Carolina Almeida abrito@inf.puc-rio.br José Maria Monteiro monteiro@inf.puc-rio.br Sérgio Lifschitz sergio@inf.puc-rio.br

Leia mais

Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br

Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br Prof. Marcelo Machado Cunha www.marcelomachado.com mcelobr@yahoo.com.br Ementa Introdução a Banco de Dados (Conceito, propriedades), Arquivos de dados x Bancos de dados, Profissionais de Banco de dados,

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

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

Organização de Arquivos

Organização de Arquivos Classificação e Pesquisa de Dados Aula 2 Organização de s: s Sequenciais e s Sequenciais Indexados UFRGS INF01124 Organização de s Propósito Estudo de técnicas de armazenamento e recuperação de dados em

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Gerência de Arquivos Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Sumário Conceituação de arquivos Implementação do sistemas de arquivo Introdução Sistema de

Leia mais

Sistemas de Banco de Dados Aspectos Gerais de Banco de Dados

Sistemas de Banco de Dados Aspectos Gerais de Banco de Dados Sistemas de Banco de Dados Aspectos Gerais de Banco de Dados 1. Conceitos Básicos No contexto de sistemas de banco de dados as palavras dado e informação possuem o mesmo significado, representando uma

Leia mais

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1.

Universidade Federal de Santa Maria Curso de Arquivologia. Disciplina de Banco de Dados Aplicados à Arquivística. Versao 1. Universidade Federal de Santa Maria Curso de Arquivologia Disciplina de Banco de Dados Aplicados à Arquivística Prof. Andre Zanki Cordenonsi Versao 1.0 Março de 2008 Tópicos Abordados Conceitos sobre Banco

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

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

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com. http://www.tiagodemelo.info

Bancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com. http://www.tiagodemelo.info Bancos de dados distribuídos Prof. Tiago Eugenio de Melo tiagodemelo@gmail.com Última atualização: 20.03.2013 Conceitos Banco de dados distribuídos pode ser entendido como uma coleção de múltiplos bds

Leia mais

Sistemas Operacionais 3º bimestre. Dierone C.Foltran Jr. dcfoltran@yahoo.com

Sistemas Operacionais 3º bimestre. Dierone C.Foltran Jr. dcfoltran@yahoo.com Sistemas Operacionais 3º bimestre Dierone C.Foltran Jr. dcfoltran@yahoo.com Sistema de Arquivos (1) Todas as aplicações precisam armazenar e recuperar informações. Considerações sobre os processos: Espaço

Leia mais

Introdução. Banco de dados. Por que usar BD? Por que estudar BD? Exemplo de um BD. Conceitos básicos

Introdução. Banco de dados. Por que usar BD? Por que estudar BD? Exemplo de um BD. Conceitos básicos Introdução Banco de Dados Por que usar BD? Vitor Valerio de Souza Campos Adaptado de Vania Bogorny 4 Por que estudar BD? Exemplo de um BD Os Bancos de Dados fazem parte do nosso dia-a-dia: operação bancária

Leia mais

GBC043 Sistemas de Banco de Dados. Introdução. Ilmério Reis da Silva ilmerio@facom.ufu.br www.facom.ufu.br/~ilmerio/sbd UFU/FACOM

GBC043 Sistemas de Banco de Dados. Introdução. Ilmério Reis da Silva ilmerio@facom.ufu.br www.facom.ufu.br/~ilmerio/sbd UFU/FACOM GBC043 Sistemas de Banco de Dados Introdução Ilmério Reis da Silva ilmerio@facom.ufu.br www.facom.ufu.br/~ilmerio/sbd UFU/FACOM Página 2 Definição BD Def. Banco de Dados é uma coleção de itens de dados

Leia mais

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo

Conteúdo. Disciplina: INF 02810 Engenharia de Software. Monalessa Perini Barcellos. Centro Tecnológico. Universidade Federal do Espírito Santo Universidade Federal do Espírito Santo Centro Tecnológico Departamento de Informática Disciplina: INF 02810 Prof.: (monalessa@inf.ufes.br) Conteúdo 1. Introdução 2. Processo de Software 3. Gerência de

Leia mais

<Insert Picture Here> Comparativo entre DBSE e DBEE

<Insert Picture Here> Comparativo entre DBSE e DBEE Comparativo entre DBSE e DBEE Oracle Database Oracle Database Standard Edition Disponível para ambientes com até 4 processadores, possui features limitadas e não oferece possibilidade

Leia mais

Arquitetura de Computadores. Sistemas Operacionais IV

Arquitetura de Computadores. Sistemas Operacionais IV Arquitetura de Computadores Sistemas Operacionais IV Introdução Multiprogramação implica em manter-se vários processos na memória. Memória necessita ser alocada de forma eficiente para permitir o máximo

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

Módulo 4. Construindo uma solução OLAP

Módulo 4. Construindo uma solução OLAP Módulo 4. Construindo uma solução OLAP Objetivos Diferenciar as diversas formas de armazenamento Compreender o que é e como definir a porcentagem de agregação Conhecer a possibilidade da utilização de

Leia mais

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais

Prof.: Roberto Franciscatto. Capítulo 1.2 Aspectos Gerais Sistemas Operacionais Prof.: Roberto Franciscatto Capítulo 1.2 Aspectos Gerais Estrutura do Sistema Operacional Principais Funções do Sistema Operacional Tratamento de interrupções e exceções Criação e

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

FAPLAN - Faculdade Anhanguera Passo Fundo Gestão da Tecnologia da Informação Banco de Dados II Prof. Eder Pazinatto Stored Procedures Procedimento armazenados dentro do banco de dados Um Stored Procedure

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

Bancos de Dados. Conceitos F undamentais em S is temas de B ancos de Dados e s uas Aplicações

Bancos de Dados. Conceitos F undamentais em S is temas de B ancos de Dados e s uas Aplicações Conceitos F undamentais em S is temas de B ancos de Dados e s uas Aplicações Tópicos Conceitos Básicos Bancos de Dados Sistemas de Bancos de Dados Sistemas de Gerenciamento de Bancos de Dados Abstração

Leia mais

Sistemas Operacionais: Sistema de Arquivos

Sistemas Operacionais: Sistema de Arquivos Sistemas Operacionais: Sistema de Arquivos Sistema de Arquivos Arquivos Espaço contíguo de armazenamento Armazenado em dispositivo secundário Estrutura Nenhuma: seqüência de bytes Registros, documentos,

Leia mais

Crash recovery é similar ao instance recovery, onde o primeiro referencia ambientes de instância exclusiva e o segundo ambientes parallel server.

Crash recovery é similar ao instance recovery, onde o primeiro referencia ambientes de instância exclusiva e o segundo ambientes parallel server. Recover no Oracle O backup e recuperação de dados em um SGBD é de grande importância para a manutenção dos dados. Dando continuidade a nossos artigos, apresentamos abaixo formas diferentes de se fazer

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

Treinamento. DBA Oracle 11g. Duração: 120 horas

Treinamento. DBA Oracle 11g. Duração: 120 horas Treinamento DBA Oracle 11g Duração: 120 horas Neste curso no primeiro módulo (Introdução ao Oracle 11g SQL e PL_SQL) é oferecido um curso introdutório à tecnologia do banco de dados Oracle 11g. Também

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

Noções de. Microsoft SQL Server. Microsoft SQL Server

Noções de. Microsoft SQL Server. Microsoft SQL Server Noções de 1 Considerações Iniciais Basicamente existem dois tipos de usuários do SQL Server: Implementadores Administradores 2 1 Implementadores Utilizam o SQL Server para criar e alterar base de dados

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais SISTEMAS DE ARQUIVOS MACHADO/MAIA: CAPÍTULO 11 Prof. Pedro Luís Antonelli Anhanguera Educacional SISTEMAS DE ARQUIVOS - INTRODUÇÃO O armazenamento e a recuperação de informações é

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

Linguagem SQL Sub-linguagem DDL

Linguagem SQL Sub-linguagem DDL Linguagem SQL Sub-linguagem DDL 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 Language para suas

Leia mais

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008

Tabela de Símbolos. Análise Semântica A Tabela de Símbolos. Principais Operações. Estrutura da Tabela de Símbolos. Declarações 11/6/2008 Tabela de Símbolos Análise Semântica A Tabela de Símbolos Fabiano Baldo Após a árvore de derivação, a tabela de símbolos é o principal atributo herdado em um compilador. É possível, mas não necessário,

Leia mais

Banco de Dados. 13 - Arquiteturas para SGBDs

Banco de Dados. 13 - Arquiteturas para SGBDs Banco de Dados 13 - Arquiteturas para SGBDs 1 Tópicos Caracterização de SGBDs SGBDs Centralizados SGBDs Cliente-Servidor SGBDs Distribuídos Homogêneos Multi-SGBDs Heterogêneos SGBDs Paralelos SGBDs e a

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

MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS

MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS MÓDULO 8 ARQUITETURA DOS SISTEMAS DE BANCO DE DADOS Quando falamos em arquitetura, normalmente utilizamos esse termo para referenciar a forma como os aplicativos computacionais são estruturados e os hardwares

Leia mais

Organização e Arquitetura de Computadores

Organização e Arquitetura de Computadores Organização e Arquitetura de Computadores MemóriaVirtual Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Gerência de memória convencional Divide um programa em unidades menores Partes

Leia mais

Organização de Arquivos

Organização de Arquivos Construção de Sistemas de Gerência de Bancos de Dados DI PUC-Rio Prof: Sérgio Lifschitz Organização de Arquivos Organização de Arquivos Tipos básicos de arquivos: heap files (entry sequenced files) sorted

Leia mais

Conceitos de Banco de Dados

Conceitos de Banco de Dados Conceitos de Banco de Dados Autor: Luiz Antonio Junior 1 INTRODUÇÃO Objetivos Introduzir conceitos básicos de Modelo de dados Introduzir conceitos básicos de Banco de dados Capacitar o aluno a construir

Leia mais

Funções de um SO. Gerência de processos Gerência de memória Gerência de Arquivos Gerência de I/O Sistema de Proteção

Funções de um SO. Gerência de processos Gerência de memória Gerência de Arquivos Gerência de I/O Sistema de Proteção Sistemas de Arquivos Funções de um SO Gerência de processos Gerência de memória Gerência de Arquivos Gerência de I/O Sistema de Proteção 2 Sistemas Operacionais Necessidade de Armazenamento Grandes quantidades

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

SQL comando SELECT. SELECT [DISTINCT] <campos> FROM <tabela> [condição] [ ; ] Paulo Damico - MDK Informática Ltda.

SQL comando SELECT. SELECT [DISTINCT] <campos> FROM <tabela> [condição] [ ; ] Paulo Damico - MDK Informática Ltda. SQL comando SELECT Uma das tarefas mais requisitadas em qualquer banco de dados é obter uma listagem de registros armazenados. Estas tarefas são executadas pelo comando SELECT Sintaxe: SELECT [DISTINCT]

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

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

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

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

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

RANGE-HASH e RANGE-LIST

RANGE-HASH e RANGE-LIST RANGE-HASH e RANGE-LIST O COMPOSITE PARTITION é um método de particionamento composto, unindo os três métodos discutidos anteriormente. Como os métodos Range, Hash e List Partition. Existem dois tipos

Leia mais

A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande

A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande A memória é um recurso fundamental e de extrema importância para a operação de qualquer Sistema Computacional; A memória trata-se de uma grande região de armazenamento formada por bytes ou palavras, cada

Leia mais

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1.

ARCO - Associação Recreativa dos Correios. Sistema para Gerenciamento de Associações Recreativas Plano de Desenvolvimento de Software Versão <1. ARCO - Associação Recreativa dos Correios Sistema para Gerenciamento de Associações Recreativas Versão Histórico da Revisão Data Versão Descrição Autor Página

Leia mais

Introdução à Banco de Dados. Definição

Introdução à Banco de Dados. Definição Universidade Federal da Bahia Departamento de Ciência da Computação (DCC) Disciplina: Banco de Dados Profª. Daniela Barreiro Claro Introdução à Banco de Dados Definição Um banco de dados é uma coleção

Leia mais

Sistemas Operacionais

Sistemas Operacionais Sistemas Operacionais Aula 13 Gerência de Memória Prof.: Edilberto M. Silva http://www.edilms.eti.br Baseado no material disponibilizado por: SO - Prof. Edilberto Silva Prof. José Juan Espantoso Sumário

Leia mais

2008.1. A linguagem SQL

2008.1. A linguagem SQL SQL 2008.1 A linguagem SQL SQL - Structured Query Language. Foi definida nos laboratórios de pesquisa da IBM em San Jose, California, em 1974. Teve seus fundamentos no modelo relacional Sua primeira versão

Leia mais

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd.

Para construção dos modelos físicos, será estudado o modelo Relacional como originalmente proposto por Codd. Apresentação Este curso tem como objetivo, oferecer uma noção geral sobre a construção de sistemas de banco de dados. Para isto, é necessário estudar modelos para a construção de projetos lógicos de bancos

Leia mais

Gerência de Redes NOC

Gerência de Redes NOC Gerência de Redes NOC Cássio D. B. Pinheiro pinheiro.cassio@ig.com.br cassio.orgfree.com Objetivos Apresentar os conceitos fundamentais, assim como os elementos relacionados a um dos principais componentes

Leia mais

Modelos. Comunicação com clientes

Modelos. Comunicação com clientes Material baseado nas notas de aula: Maria Luiza M. Campos IME/2005 Carlos Heuser - livro Projeto de Banco de Dados CasaNova / PUC/RJ Prof. MSc. Edilberto Silva edilms@yahoo.com Sistemas de Informação Brasília/DF

Leia mais