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

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

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

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

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

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

Administração de Banco de Dados

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

Leia mais

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

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

Leia mais

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

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

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

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

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

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

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

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

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

Structured Query Language (SQL) Ambiente Simplificado de um SGBD

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

Leia mais

Banco de Dados 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

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

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

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

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

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

Histórico de revisões

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

Leia mais

Componentes internos de Um SGBD

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

Leia mais

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

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

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

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

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

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

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

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

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

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

Leia mais

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

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

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

CIÊNCIA E TECNOLOGIA DO RIO

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

Leia mais

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

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

Leia mais

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

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

Aula 2 Arquitetura Oracle

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

Leia mais

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

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

Leia mais

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

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

Leia mais

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

Linguagem de Consulta Estruturada SQL- DML

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

Leia mais

Banco de Dados 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

A empresa brasileira de PostgreSQL

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

Leia mais

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

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

Banco de Dados - Senado

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

Leia mais

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

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

Leia mais

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

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

Leia mais

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

Á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

Oracle Performance Diagnostics & Tuning Ricardo Portilho Proni

Oracle Performance Diagnostics & Tuning Ricardo Portilho Proni Oracle Performance Diagnostics & Tuning Ricardo Portilho Proni Mitificação Métodos antigos o o o o o o Experiência Intuição Imprecisão Tempo Sorte Recursos Top Tuning Verificar maior consumidor de CPU

Leia mais

Programação SQL. Introdução

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

Leia mais

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

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

Gerenciamento de um Sistema de

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

Leia mais

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

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

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

Leia mais

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

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

Leia mais

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

ADMINISTRAÇÃO DE BANCO DE DADOS

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

Leia mais

Prof. Carlos Majer Aplicações Corporativas UNICID

Prof. Carlos Majer Aplicações Corporativas UNICID Este material pertence a Carlos A. Majer, Professor da Unidade Curricular: Aplicações Corporativas da Universidade Cidade de São Paulo UNICID Licença de Uso Este trabalho está licenciado sob uma Licença

Leia mais

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

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

Leia mais

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

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

Leia mais

Banco de Dados. 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

DBMS%Performance% Carlos%Soares% (baseado%em%materiais%gen8lmente%cedidos% por%andré%res8vo,%joão%correia%lopes%e%do% livro%ramakrishnan%&%gehrke)% %

DBMS%Performance% Carlos%Soares% (baseado%em%materiais%gen8lmente%cedidos% por%andré%res8vo,%joão%correia%lopes%e%do% livro%ramakrishnan%&%gehrke)% % DBMS%Performance% Carlos%Soares% (baseado%em%materiais%gen8lmente%cedidos% por%andré%res8vo,%joão%correia%lopes%e%do% livro%ramakrishnan%&%gehrke)% % Plano% Contexto% Índices% Carga%da%base%de%dados%%

Leia mais

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

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

Leia mais

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

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

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

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

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

Leia mais

Banco de Dados. Prof. Antonio

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

Leia mais

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

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

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

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

Leia mais

Um objeto de estatística contém informações de distribuição de valores de uma ou mais colunas de uma tabela ou view indexada

Um objeto de estatística contém informações de distribuição de valores de uma ou mais colunas de uma tabela ou view indexada Desvendando Estatísticas do SQL Server Parte 1 Nesta série de artigos vamos dar um mergulho profundo nas Teorias Probabilísticas (mais conhecido como estatísticas) do SQL Server. Introdução Estatísticas

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

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

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

Leia mais

Treinamento PostgreSQL - Aula 01

Treinamento PostgreSQL - Aula 01 Treinamento PostgreSQL - Aula 01 Eduardo Ferreira dos Santos SparkGroup Treinamento e Capacitação em Tecnologia eduardo.edusantos@gmail.com eduardosan.com 27 de Maio de 2013 Eduardo Ferreira dos Santos

Leia mais

Junções e Índices em Tabelas

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

Leia mais

SQL TGD/JMB 1. Projecto de Bases de Dados. Linguagem SQL

SQL TGD/JMB 1. Projecto de Bases de Dados. Linguagem SQL SQL TGD/JMB 1 Projecto de Bases de Dados Linguagem SQL SQL TGD/JMB 2 O que é o SQL? SQL ("ess-que-el") significa Structured Query Language. É uma linguagem standard (universal) para comunicação com sistemas

Leia mais

Introdução a Computação

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

Leia mais

SQL. Banco de Dados I. Componentes de SQL

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

Leia mais

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

Laboratório 3. Base de Dados II 2008/2009

Laboratório 3. Base de Dados II 2008/2009 Laboratório 3 Base de Dados II 2008/2009 Plano de Trabalho Lab. 3: Programação em Transact-SQL MYSQL Referências www.mysql.com MICROSOFT SQL SERVER - Procedimentos do Lado do Servidor (Stored Procedures)

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

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

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

Leia mais

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

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

Leia mais

Banco de Dados 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

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