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

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

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

Transcrição

1 Sérgio Lifschitz Departamento de Informática Pontifícia Universidade Católica do Rio de Janeiro (PUC-Rio) - Brasil 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! Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD 007 1/126 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD 007 2/126 Idéia de um VLDB Problema típico 500GB de dados ou muito mais VLDBs = terabytes (cartões de crédito, fast mail, ) 5K tabelas e índices + 2K views Tanto BD Produção como ODS Algumas tabelas com mais de 50M tuplas 10 a consultas por minuto, 12K usuários (0 simultâneos) Basic SAP R/3 : 16K tabelas e 19K índices (1)insert into SALES (prodnum, date, qty, value) values (4, current_timestamp,, 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? Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD 007 3/126 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD 007 4/126 Problema simples? Princípios de Tuning (Shasha) update venda set valor = valor -1 where valor > ; Índices ajudam ou atrapalham? Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD 007 5/126 Pensar globalmente, fixar localmente 80 x : 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! Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD 007 6/126 1

2 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 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. Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD 007 7/126 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD 007 8/126 O que é preciso saber? Agenda 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! 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 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD 007 9/126 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Arquitetura ANSI/SPARC EE1 EE2 EE3 Três níveis de abstração: EC Esquemas Externos (EE) Esquema Conceitual (EC) Esquema Interno (EI) EI Princípio da Independência de Dados Independência física e lógica E.g. Modelo Relacional de Dados SQL Arquitetura Funcional Componentes de um SGBD Processador de Consultas Otimizador Gerente de Armazenamento Executor Controle de Memória Controle de Dados Controle de Concorrência Gerência de Bloqueios Gerência de Transação e Recuperação Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Meta-Dados e Dados e Log de Tuning e Self-Tuning Estatísticas de Sérgio Lifschitz DI Índices PUC-Rio Mini-curso SBBD Transações /126 2

3 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 Organização de Arquivos Tipos básicos de arquivos: Heap (entry sequenced files) Ordenados (sorted) Hash Árvores balanceadas Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Heap Files Arquivos Ordenados 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. (Sorted) pesquisa interessante para campos chave Num Nome Idade Sal 1000 Ademar Afonso Angela Antonio Carlos Cesar Sonia Tatiana 1000 } } } bloco 1 bloco 2 bloco n Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Arquivos Hash Árvores B 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 Á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 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 3

4 Á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 + N = N = m = 512 m = 512 d níveis d níveis Árvores B Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD 007 /126 Ainda Árvores B + Estruturas auxiliares: Índices Sequence Set: conjunto ordenado de blocos chaves ordenadas em cada bloco lista simples ou duplamente encadeada chave pág n Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Índices Clusterização Normalmente são variaçõesdas árvores B e B + du cage eva 64 folk Í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 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 4

5 Índices Clusterizados Índices Não-clusterizados Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Processamento de Consultas Parse Query Check de Semântica Query Rewrite Otimização do Plano de Acesso 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 Geração de Código Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 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) 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! Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 5

6 Agenda Planos de Execução 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 É 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 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 QEP: Query Execution Plan Métodos de Acesso Exemplo: SELECT endereço, data-nascimento FROM empregado WHERE nome = Chico Cesar Execution Plan SELECT STATEMENT Optimizer=CHOOSE 1 0 TABLE ACCESS (BY INDEX ROWID) OF 'EMPREGADO' 2 1 INDEX (UNIQUE SCAN) OF 'PK_EMP' (UNIQUE) 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 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Junções Nested Loops Principais algoritmos: Laços Aninhados (Nested Loops Join) Ordenação/Intercalação (Merge Join) Hashing(Hash Join) T1 Outer Table T2 Inner Table Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 6

7 Merge Join Hash Join Ordenada Outer Table Inner Table Ordenada Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD / Outer Table Build Phase f(chave) Inner Table Probe Phase Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 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! 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 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Fator de Filtro Fator de Filtro Fator de filtro de um predicado: número entre 0 e 1: 0 FF 1 FF 0 poucas linhas FF 1 todas as linhas da tabela 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 Select nome from empregados where sexo = F Estima retorno de 5000 linhas Estima retorno de 5000 linhas Não usa índice Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 7

8 Fator de Filtro Estatísticas com a presença de Histograma: otimizador pode perceberdistribuição não-uniforme: tabela de Empregados com linhas: coluna Sexo: distribuição não uniforme. estatísticas de distribuição não uniforme: M: empregados F: empregados FF(F) = 0.1 Para consulta sexo = `F`, otimizador pode decidir utilizar o índice da coluna sexo 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. Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Fator de Filtro 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 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 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 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 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! 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 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 8

9 Exemplo Oracle: Reescrita Exemplo Oracle Reescrita Select max(salario) From empregado Group by depnum Having depnum = 100 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 FILTER SORT GROUP BY TABLE ACCESS FULL EMPREGADO 100K 1M 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 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Reescrita 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 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 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 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 ) 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 Execution Plan SELECT STATEMENT Optimizer=CHOOSE FILTER TABLE ACCESS (FULL) OF EMPREGADO' INDEX (RANGE SCAN) OF 'IDX_DEPENDENTE_IDEMP' (NO N-UNIQUE) 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) Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 9

10 Sem estatísticas Execution Plan Junções e Sub-Consultas select E.Ident, E.nome from Empregado E where E.Ident in ( select IdEmp from Dependente D) 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) Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 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=20 Bytes=226600) INDEX (FAST FULL SCAN) OF 'IDX_DEPENDENTE_IDEMP' (NON-UNIQUE) (Cost=2 Card=3000 Bytes=9000) Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Junções e Sub-Consultas Outras Atividades de Tuning Com estatísticas Execution Plan select E.Ident, E.nome from Empregado E, Dependente D where D.Idemp = E.Ident 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=20 Bytes=226600) 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 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 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... o Introdução e Motivação o Conceitos e Fundamentos Agenda 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 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 10

11 Auto-Sintonia (Self-Tuning) Capacidade de auto-ajuste dos SGBDs ao ambiente existente para obtenção de melhor desempenho Alguns SGBDs comerciais possuem implementação de algumas características Trabalhos científicos: projeto e memória 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 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Self-tuning 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 (01) 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 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 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 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) Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 11

12 Alocação de Dados Controle de Carga 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) 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) Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 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 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 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 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 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; Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 12

13 Possível Classificação Self-Tuning de índices Auto-sintonia global por construção Auto-sintonia global Auto-sintonia global por adaptação Auto-sintonia de bancos de dados Projeto Alocação Físico de dados Auto-sintonia local Controle Substituição de carga de páginas Ajuste de buffers Refino de estatísticas 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? Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Índices hipotéticos Tutorial (em inglês) 1/11 Hipotéticos ou virtuais: Necessários para implementar self-tuning Existem APENAS na metabase/catálogo Estatísticas devem ser sugeridas para que o otimizador leve em consideração No caso do PUC-Rio Fundamental a existência! Comandos novos: create/drop hypothetical This tutorial shows the usage of hypothetical indexes on PostgreSQL. Hypothetical indexes are simulated index structures created solely in the database catalog. This type of index has no physical extension and, therefore, cannot be used to answer queries. The main benefit is to provide a means for simulating how query execution plans would change if the hypothetical indexes were actually created in the database. Index selection tools, such as Microsoft s SQL Server Index Tuning Wizard, make use of hypothetical indexes in the database server to evaluate candidate index configurations. We have made some server extensions to PostgreSQL 7.4 beta 3 to include the notion of hypothetical indexes in the system. To download the modified server code (v 7.3) please check Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Tutorial (em inglês) 2/11 Tutorial (em inglês) 3/11 id int Department name varchar(50) managerid int Number of tuples: 0 This tutorial uses an example database that stores student and course information for an university. The database consists of four relations: id int Employee name varchar(50) address varchar(0) salary numeric(10,2) depid integer id int Product type varchar(30) description varchar(150) measure varchar(30) price numeric(5,2) Number of tupes: 100 Number of tuples: 250 Actual indexes are created for all of the tables primary keys id int year int Sale month int day int prodid int sellerid int Price numeric(4,2) Number of tuples: 250 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; Previous Next Previous Next 13

14 Tutorial (em inglês) 4/11 Tutorial (em inglês) 5/11 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) 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: create hypothetical index hi_employee_salary A sequential scan was chosen by the planner to access the employee table. Perhaps we could improve thisby creating an index on the salary column. on employee(salary); Previous Next Previous Next Tutorial (em inglês) 6/11 Tutorial (em inglês) 7/11 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: 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; 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. Previous Next Previous Next Tutorial (em inglês) 8/11 Tutorial (em inglês) 9/11 Now that we know that the index is beneficial to performance, we can drop the hypothetical index and create a corresponding actual one: Lets check the query execution plan for the query with the actual index created: drop hypothetical index hi_employee_salary; create index i_employee_salary on employee(salary); 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; Previous Next Previous Next 14

15 Tutorial (em inglês) 10/11 Tutorial (em inglês) 11/11 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. That ends our tutorial. We hope the tutorial has been useful for you to understand how hypothetical indexes can be used to simulate index configurations for the database. After implementing the server extensions for hypothetical indexes, the next logical step is to implement automatic index selection tools and algorithms for the PostgreSQL database. We are currently doing that at PUC-Rio. One interesting research prototype we obtained is a software agent, written in C++, that can be integrated to the DBMS in order to make index selection and creation totally autonomic. If you would like more details on how all of this stuff was implemented, or You can also contact our research group head Previous Next Previous Oracle 10g (ADDM) Características Automatic Database Diagnostic Monitor Visão holística da base Diferenciar sintomas/causas de performance Prover mecanismos de detecção de problemas em sua 1ª ocorrência Sempre faz a análise baseada num período de tempo * Tira fotos da base - Active Session History(ASH) Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Estrutura Observação: Automática e Constante Diagnóstico: com base no AWR invoca os advisors(sql Tuning Advisor, Segment Advisor, Memory Advisor) Resolução: Com base nos conselheiros são dadas sugestões. SQL Tuning Advisor - Etapas Análise das estatísticas Perfil do SQL Análise do plano de acesso Análise da estrutura do SQL *Baseado em heurísticas do tipo What-if Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 15

16 Análise das estatísticas Geração de um log das estatísticas que serão utilizadas no plano Saída: Recomendação para analisar objetos Perfil do SQL Determinar um perfil para a consulta, minimizando a probabilidade de erros na geração de sugestões Saídas: Informações auxiliares que irão determinar um perfil para a consulta Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Análise do Plano de Acesso Verifica se existe a necessidade de índices Faz a sugestão baseada em uma consulta somente Só faz a sugestão se o índice melhorar muito a consulta (em torno de 90%) Índices b-tree Análise da Estrutura do SQL Problemas de semântica Problemas de sintaxe Problemas de Projeto Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 SQL Access Advisor SQL Server 05: DTA Leva em consideração toda a carga de trabalho Leva em consideração índices b-tree e bitmap. Nâo tem limitação de melhora de performance em 90% Used to tune individual SQL statement large workload of queries and update *Baseado em heurísticas do tipo What-if Returns a list of suggested physical design changes (create / DROP index,...) for optimizing the performance of the given workload Designed to keep the query optimizer in the loop when suggesting physical design changes Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Enhances the usability of Index Tuning Wizard (ITW) in SQL Server 00 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 16

17 Useful features for DBAs DTA Architecture Powerful What-If analysis Extensive reports and feedback Session-based tuning Enterprise-ready performance Steps to arrive at physical design recommendations: 1. Workload analysis, searching for groups of interesting tables and columns; 2. Generates candidates by combining their structures; 3. Picks a subset of the candidates in consultation with SQL Server query optimizer. Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 DTA Architecture DB2 Automatic features O DB2 possui algumas ferramentas automáticas que são ativadas por default no sistema ao criar um banco de dados. Dessa forma o sistema é capaz de se auto-diagnosticar e pode antecipar os problemas antes que eles aconteçam. São eles: Automatic statistics collection Automatic storage Configuration Advisor Health Monitor Self tuning memory Utility throttling Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Automatic statistics collection Configuration Advisor Com esta ferramenta você pode deixar que o DB2 determine quais estatísticas precisam ser atualizados pois ela rodará automaticamente o RUNSTATS em background para obter as estatísticas mais atuais para o banco de dados. Para garantir a performance alguns procedimentos são respeitados: Somente tabelas com auto nível de atividade são consideradas. Tabelas com mais de 4000 páginas só serão coletadas se autorizadas Quando o banco está em auta atividade o RUNSTATS rda mais lentamente Quando um banco de dados é criado, esta ferramenta é invocada automaticamente para determinar o grupo de parâmetros de configuração. Ele pode ser ativado a qualquer momento. Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 17

18 Health Monitor Self tuning memory Proativamente monitora situações ou mudanças no ambiente do banco dados que podem resultar em uma degradação da performance ou uma potencial queda banco: Pode registrar alertas no log de notificação do administração e emitir notificações pelo ou por pager. Distribui dinamicamente recursos disponíveis da memória entre diversos consumidores Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Utility throttling Esta ferramenta regula o impacto do desempenho de utilidades da manutenção, de modo que possam funcionar simultaneamente durante períodos da produção. Modelo local SGBD Componente de Auto-Sintonia Avaliação de métricas e alterações na execução (AS e EPA) PostgreSQL Self-Tuning abordagem 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 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 SGBDs baseados em Agentes Agentes de software Três arquiteturas Lifschitz e Macedo, CLEI 01 Arquitetura em Camadas Sistema de Agentes SGBD Arquitetura Integrada SGBD Sistema de Agentes Arquitetura Embutida SGBD Componentes do SGBD Sistema de Agentes Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 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 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 18

19 Agentes e Self-Tuning Agente em camada e etapas do Self-tuning (Costa e Lifschitz, CLEI 02) Outras funcionalidades Agente Etapas da Auto-Sintonia Decisões sobre colaboração com outros agentes, Mobilidade preparação e envio de Tradução mensagens. Realização de Alterações Recebimento e análise Colaboração prévia de mensagens de outros agentes Ação Avaliação da Situação Raciocínio e Armazenamento de estatísticas, decisões tomadas e crenças Crença Enumeração de Possíveis Alterações Sensor Coleta de Informações 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 Lembrança de operações passadas (dados persistentes) Agente de Self-tuning Local Leitura de dados Troca de informações Área sendo ajustada Componente N Componente N + 1 Componente M Componente M +1 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Modelo Global 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; Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Questões de implementação Agenda SGBD Sensor Agente de Self-tuning SGBD Agente de Self-tuning Mobilidade Consulta Query Rewrite Otimização do Plano de Acesso Geração de código Solicitação de montagem de plano segundo uma dada configuração Geração do Plano de Acesso Ciclo de uma operação SGBD Agente de Self-tuing Crença Estatísticas SGBD Tomada de decisão SGBD Agente de com possível Otimização do Agente de Self-tuning enumeração de Plano de Acesso Self-tuning índices propostos ou decisões sobre Mobilidade Raciocínio imediata/posterior Geração de criação/destruição código de índices 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 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 19

20 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... 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; Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 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 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 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 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 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 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD /126 Sérgio Lifschitz DI PUC-Rio Mini-curso SBBD 007 1/126

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

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

Leia mais

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

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

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

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

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

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

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

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 é uma linguagem de consulta que implementa as operações da álgebra relacional de forma bem amigável.

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

Leia mais

BANCO DE DADOS 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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

Leia mais

Linguagem de Consulta Estruturada SQL- DML

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

Leia mais

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

Triggers no PostgreSQL

Triggers no PostgreSQL Triggers no PostgreSQL Traduzido do manual do PostgreSQL Pode-se utilizar PL/pqSQL para a definição de triggers (gatilhos). Um procedimento do tipo trigger é criado com o comando CREATE FUNCTION, declarando

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

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

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

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

Leia mais

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

Arquitetura de SGBD Relacionais Previsão de Seletividade

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

Leia mais

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

Fundamentos do Sistema Gerenciador de Banco de Dados

Fundamentos do Sistema Gerenciador de Banco de Dados Fundamentos do Sistema Gerenciador de Banco de Dados Cláudio Luís V. Oliveira Janeiro de 2010 Definição "Um sistema cujo objetivo principal é gerenciar o acesso, a correta manutenção e a integridade dos

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

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

Carga Horária 40 horas. Requisitos Servidor Oracle 10G Ferramenta para interação com o banco de dados

Carga Horária 40 horas. Requisitos Servidor Oracle 10G Ferramenta para interação com o banco de dados Oracle 10g - Workshop de Administração I Objetivos do Curso Este curso foi projetado para oferecer ao participante uma base sólida sobre tarefas administrativas fundamentais. Neste curso, você aprenderá

Leia mais

Bases de Dados 2007/2008. Aula 1. Referências

Bases de Dados 2007/2008. Aula 1. Referências Bases de Dados 2007/2008 Aula 1 Sumário 1. SQL Server 2000: configuração do acesso ao servidor. 1.1. SQL Server Service Manager. 1.2. SQL Server Enterprise Manager. 1.3. SQL Query Analyzer. 2. A base de

Leia mais

BANCO DE DADOS. Introdução a Banco de Dados. Conceitos BásicosB. Engenharia da Computação UNIVASF. Aula 1. Breve Histórico

BANCO DE DADOS. Introdução a Banco de Dados. Conceitos BásicosB. Engenharia da Computação UNIVASF. Aula 1. Breve Histórico Banco de Dados // 1 Banco de Dados // 2 Conceitos BásicosB Engenharia da Computação UNIVASF BANCO DE DADOS Aula 1 Introdução a Banco de Dados Campo representação informatizada de um dado real / menor unidade

Leia mais

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

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

Leia mais

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

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

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

BANCO DE DADOS E BUSINESS INTELIGENCE. C/H: 20 horas (20/02, 25/02, 27/02, 04/03, 06/03)

BANCO DE DADOS E BUSINESS INTELIGENCE. C/H: 20 horas (20/02, 25/02, 27/02, 04/03, 06/03) MBA em Gestão de TI MÓDULO: BANCO DE DADOS E BUSINESS INTELIGENCE C/H: 20 horas (20/02, 25/02, 27/02, 04/03, 06/03) PROFESSOR: Edison Andrade Martins Morais prof@edison.eti.br http://www.edison.eti.br

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

AUDITORIA EM BANCO DE DADOS COM UTILIZAÇÃO DE REGRAS

AUDITORIA EM BANCO DE DADOS COM UTILIZAÇÃO DE REGRAS REVISTA DE CIÊNCIAS EXATAS E TECNOLOGIA AUDITORIA EM BANCO DE DADOS COM UTILIZAÇÃO DE REGRAS Eder Pazinatto Faculdade Anhanguera de Passo Fundo RESUMO: A busca por mecanismos que implementam segurança

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

ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL. Carga horária: 32 Horas

ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL. Carga horária: 32 Horas ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL Carga horária: 32 Horas Pré-requisito: Para que os alunos possam aproveitar este treinamento ao máximo, é importante que eles tenham participado dos treinamentos

Leia mais

Sistemas de Informação. Sistemas Operacionais 4º Período

Sistemas de Informação. Sistemas Operacionais 4º Período Sistemas de Informação Sistemas Operacionais 4º Período SISTEMA DE ARQUIVOS SUMÁRIO 7. SISTEMA DE ARQUIVOS: 7.1 Introdução; 7.2 s; 7.3 Diretórios; 7.4 Gerência de Espaço Livre em Disco; 7.5 Gerência de

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

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

UNINOVE Tec. Adm. e Des. de Sistemas. Administracão de Banco de Dados. ORACLE Backup / Recovery AULA 11

UNINOVE Tec. Adm. e Des. de Sistemas. Administracão de Banco de Dados. ORACLE Backup / Recovery AULA 11 UNINOVE Tec. Adm. e Des. de Sistemas Administracão de Banco de Dados ORACLE Backup / Recovery AULA 11 Prof. MsC. Eng. Marcelo Bianchi AULA 09 A ARQUITETURA DO ORACLE O conhecimento da arquitetura Oracle

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

www.en-sof.com.br SOLUÇÕES PARA CONTINUIDADE DO NEGÓCIO

www.en-sof.com.br SOLUÇÕES PARA CONTINUIDADE DO NEGÓCIO SOLUÇÕES PARA CONTINUIDADE DO NEGÓCIO 1 Soluções Oracle Voltadas à Continuidade dos Negócios Luciano Inácio de Melo Oracle Database Administrator Certified Oracle Instructor Bacharel em Ciências da Computação

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

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

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

*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

INTRODUÇÃO E CONCEITOS BÁSICOS. Prof. Ronaldo R. Goldschmidt

INTRODUÇÃO E CONCEITOS BÁSICOS. Prof. Ronaldo R. Goldschmidt INTRODUÇÃO E CONCEITOS BÁSICOS Prof. Ronaldo R. Goldschmidt Hierarquia Dado - Informação - Conhecimento: Dados são fatos com significado implícito. Podem ser armazenados. Dados Processamento Informação

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

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

Processamento e Otimização de Consultas em Bancos de Dados. SGBD Parte 2. Prof. Sérgio Lifschitz. Departamento de Informática PUC-Rio - Brasil

Processamento e Otimização de Consultas em Bancos de Dados. SGBD Parte 2. Prof. Sérgio Lifschitz. Departamento de Informática PUC-Rio - Brasil Processamento e Otimização de Consultas em Bancos de Dados SGBD Parte 2 Prof. Sérgio Lifschitz Departamento de Informática PUC-Rio - Brasil Idéia de um VLDB 500GB de dados ou muito mais VLDBs = terabytes

Leia mais

MODELO DE DADOS VS ESQUEMA

MODELO DE DADOS VS ESQUEMA MODELO DE DADOS VS ESQUEMA Um modelo de dados é um conjunto de conceitos usados para se descrever dados. Um esquema é uma descrição de uma determinada coleção de dados, descrição essa baseada num certo

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

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

Foglight A solução ideal para o gerenciamento de aplicações e serviços SAP

Foglight A solução ideal para o gerenciamento de aplicações e serviços SAP Parceria: Foglight A solução ideal para o gerenciamento de aplicações e serviços SAP Uma nova visão no Gerenciamento da Aplicação INDICE 1. Parceria Union e Quest Software... 3 2. Foglight Gerenciando

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

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

Tuning para Desenvolvedores DB2

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

Leia mais

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

Sumário. Introdução... 1. 1 O Problema... 3

Sumário. Introdução... 1. 1 O Problema... 3 Sumário Introdução... 1 1 O Problema... 3 1.1 Definição do Problema... 3 1.2 A Solução... 3 1.2.1 Projeto Conceitual...4 1.2.2 Projeto Lógico... 5 1.2.3 Projeto Físico... 6 2 Criação de Bancos de Dados...

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