Administração de. José Antônio da Cunha CEFET-RN

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

UTFPR - Universidade Tecnológica Federal do Paraná. Processamento e otimização de consultas

MATA60 BANCO DE DADOS Aula: Otimização. Prof. Daniela Barreiro Claro

OTIMIZAÇÃO DE CONSULTAS RELACIONAIS TRABALHO DE PÓS-GRADUAÇÃO

Processamento de Consultas. Processamento de Consultas. Processamento de Consultas Distribuídas. Otimização de Consultas

ACH2025. Laboratório de Bases de Dados Aula 15. Processamento de Consultas Parte 2 Otimização. Professora: Fátima L. S. Nunes SISTEMAS DE INFORMAÇÃO

Douglas Matheus de Souza Prof. Marcel Hugo, Mestre - Orientador

ÁLGEBRA E CÁLCULO RELACIONAL

Rápida revisão do Modelo Relacional

Processamento da Consulta. Processamento da Consulta

ANÁLISE E PROJETO DE BANCO DE DADOS

Introdução a. π LNAME, FNAME (σ SALARY>C (EMPLOYEE))

O Modelo e a Álgebra Relacional

Compilação, Otimização e Execução de Consultas. Profa. Dra. Cristina Dutra de Aguiar Ciferri

3 Plano de Execução de Consultas

Etapa III - Implementação de Operadores da Álgebra Relacional; Etapa IV - Comparação experimental de varredura sequencial x acesso aleatório

23/05/12. Consulta distribuída. Consulta distribuída. Objetivos do processamento de consultas distribuídas

Prof. Marcelo Machado Cunha

Universidade Veiga de Almeida

Tecnologias de Bancos de Dados

Sumário. Definição do Plano de Execução

Unipar Universidade Paranaense Disciplina: Banco de Dados II 3ª Série Profª: Késsia Marchi Profa. Késsia Marchi

Sumário. Etapas do Processamento de Consultas

Álgebra Relacional e SQL operações de interesse

BASES DE DADOS I LTSI/2. Universidade da Beira Interior, Departamento de Informática Hugo Pedro Proença, 2010/2011

Universidade de São Paulo Escola de Artes, Ciências e Humanidades Disciplina: Laboratório de Banco de Dados Profa. Fátima Nunes

3 Arquitetura do Sistema

ROTEIRO Introdução Álgebra e Cálculo Relacional Operações da Álgebra Relacional Classificação de Operadores da Álgebra Relacional Mapeamento AR -> SQL

Bases de Dados BDDAD. Linguagem SQL. Comando SELECT Divisão Algébrica. Nelson Freire (ISEP LEI-BDDAD 2015/16) 1/9

GBC053 Gerenciamento de Banco de Dados. Plano de Curso e Introdução. Ilmério Reis da Silva UFU/FACOM/BCC

Prof. Daniela Barreiro Claro

AULA 3 Ferramentas de Análise Básicas

MATA60 BANCO DE DADOS Aula 10- Indexação. Prof. Daniela Barreiro Claro

Uso de Índices na Otimização e Processamento de Consultas. Otimização e Processamento de Consultas. Otimização e Processamento de Consultas

Operações da Álgebra Relacional Operadores Especiais da Álgebra Relacional Renomeação

Álgebra e cálculo relacional. Andre Noel

3 Heurísticas para sintonia de Visão Materializada na Arquitetura

Processamento e Otimização de Consultas. Msc. Simone Dominico Orientador: Dr. Eduardo Cunha de Almeida PPGINF - UFPR

mod._1_teoria_sistemas de bancos de dados.doc

BANCO DE DADOS. Introdução. Prof. Marcelo Machado Cunha

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

saída durante o runtime Usando Functions de uma Única Linha para Personalizar Relatórios Mostrar as diferenças entre as functions SQL de uma única

Compiladores. Conceitos Básicos

TABELA ENTIDADE LINHA OCORRÊNCIA DA ENTIDADE COLUNA ATRIBUTO DA ENTIDADE

Álgebra Relacional e Cálculo Relacional

ORACLE 11 G INTRODUÇÃO AO ORACLE, SQL,PL/SQL

Processamento e Otimização de Consultas

Revisando Banco de Dados. Modelo Relacional

Sistema para aprendizado de Álgebra Relacional e Linguagem SQL

AUMENTO DE PERFORMANCE POR MEIO DA OTIMIZAÇÃO DE BANCO DE DADOS

ALGEBRA RELACIONAL. Álgebra Relacional Conjunto básico de operações para o Modelo Relacional O resultado é uma relação

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

Introdução a Bancos de Dados

Introdução a Bancos de Dados. - Conceitos - Modelos lógicos e relacional - Álgebra relacional -SQL - Projeto Lógico

Introdução ao Banco de Dados. Banco de Dados

Resolução e Critérios de Correção U.C Sistemas de Gestão de Bases de Dados. 26 de fevereiro de 2016

IMPLEMENTAÇÃO DE BANCO DE DADOS

- SQL Linguagem de Manipulação de Dados

2 Conceitos Básicos e Trabalhos Relacionados

ÁLGEBRA DE BOOLE POSTULADOS, TEOREMAS E PROPRIEDADES

Aula 8 BD1 Álgebra Relacional. Profa. Elaine Faria UFU

Obs: Se não tiver o banco que está sendo configurado, o SuperBI irá cria-lo.

OTIMIZAÇÃO DE CONSULTAS - MYSQL. Prof. Antonio Almeida de Barros Junior

Resolução de Problemas com Computador. Resolução de Problemas com Computador. Resolução de Problemas com Computador

Caderno de Introdução Bases Dados

Múltiplas Tabelas. Disciplina de Banco de Dados

Bases de Dados. Optimização de planos de execução. Plano de execução

Oracle Database 10g: Fundamentos de SQL e PL/SQL

23/05/12. Agenda. Introdução. Introdução. Introdução. Álgebra. Relacional. Cálculo. Relacional

Disciplina: Banco de Dados I Professora: Ms. Márcia Jani. Trabalho de BD1

Banco de Dados. Professor: Marcelo Machado Cunha IFS Campus Aracaju

Bases de Dados 2007/2008 Exame

MODELAGEM DE DADOS - INTRODUÇÃO AO SQL: DML. Prof. Angelo Augusto Frozza, M.Sc.

Subconsulta na Cláusula FROM

Operações fundamentais são suficientes para expressar qualquer consulta. Problema: consultas muito longas. Solução: definição de operações adicionais

Introdução. Conceitos Básicos. Conceitos Básicos. Conceitos Básicos

conteúdos. bases de dados, SGBD e aplicações. conceitos. modelo relacional (DER) conceitos

SQL Consultas Básicas

Tornou-se um padrão de fato para aplicações comerciais, devido a sua simplicidade e performance.

José Antônio da Cunha

Compiladores. Motivação. Tradutores. Motivação. Tipos de Tradutores. Tipos de Tradutores

Processamento e Otimização de Consultas

INE 5336 Banco de Dados II

Banco de Dados I Módulo VI: Processamento e Otimização de Consultas. (Aulas 1-5) Clodis Boscarioli

Principais Desafios dos SGBDDs. Processamento Distribuído de Consultas. Processamento de Consultas. Componentes do Processamento de Consultas

Sistema Operacional Unidade 11.2 Shell Script: estruturas condicionais. QI ESCOLAS E FACULDADES Curso Técnico em Informática

Informações de Impressão

Preparação. Linguagem de Manipulação de Dados (DML) Estudo Dirigido 10/12/2013

Um modelo por si próprio não pode realizar qualquer unidade de trabalho útil. É apenas uma representação da realidade.

PROGRAMAÇÃO ORIENTADA A OBJETOS. Aula 09a- Acessando os dados através JDBC

ANEXO B Manual básico de SQL

LÉO MATOS INFORMÁTICA

Consultas SQL. Andre Noel

Modelo Relacional Prof. Msc Denival A. dos Santos

Otimização de Consultas Baseada em Custo. Cristina Dutra de Aguiar Ciferri

Roteiro. SQL: Visões. Suporte de SQL para OLAP SELECT. Detalhando GROUP BY SQL DML CONTINUAÇÃO CONSULTAS AVANÇADAS. Consultas Avançadas Visões

Princípio dos anos 70 IBM desenvolve a linguagem Sequel para o System R. Renomeada para SQL (Structured Query Language)

3 Arquitetura MVC baseada em modelos

Prova de Fundamentos de Bancos de Dados 1 a Prova

Transcrição:

Administração de Banco de Dados José Antônio da Cunha CEFET-RN

O Otimizador de um Sistema de Gerenciamento de Banco de Dados Relacionais (SGBDR) é responsável por analisar uma consulta SQL e escolher qual a forma mais eficiente de executá-la. A escolha leva em consideração várias informações internas no banco de dados. Cliente Passo 1: Consulta SQL Passo 3: SGBD Resposta Passo 2: Banco de Dado Localização dos Dados Servidor SQL Figura 1: Representa os passos envolvidos na busca de informações.

A otimização em um SGBDR pode ser feita porque em SQL não se expressa como a consulta deve ser executada, mas sim o que se pretende recuperar, permitindo que o otimizador escolha o como da maneira mais adequada em determinado momento.

Seletividade de Atributos É um conceito importante que afeta a decisão sobre usar ou não um índice. A seletividade estima, em média, a porcentagem dos registros que deverão aparecer na resposta, dado um determinado atributo. Ela pode ser calculada pela função: Seletividade = 1 (registros-na-resposta-filtrada-pelo-atributo / total-de-registros) Quanto mais próximo de 1, melhor é a seletividade de um atributo. Vejamos um exemplo: suponha uma tabela de cliente com 500 clientes. Vamos realizar uma consulta pelo CPF. Sabemos que o CPF não se repete e que existe um índice sobre este campo. Então teremos: Seletividade(CPF) = 1 (1/500) = 0.998 Isto indica que o CPF é um excelente atributo para realização de consultas através do uso de índice, pois cada valor de CPF descarta quase todos os registros da tabela.

Seletividade de Atributos Agora vamos realizar uma consulta pelo atributo cidade, sabendo que existem clientes de 110 cidades diferentes e que também existe um índice sobre esse campo. Selevidade(Cidade) = 1 (110/500) = 0.78 Esta pesquisa irá retornar em média mais de 20% dos registros. Isto pode indicar para o otimizador não utilizar o índice sobre o campo cidade e sim fazer uma varredura total sobre a tabela. Vamos fazer alguns exemplos práticos:

Seletividade de Atributos Considere a tabela cliente composta pelos campos: Cliente (nome_cliente, rua_cliente, cidade, obs1, ob2, ob3) A tabela possui um total de 100.000 registros armazenados. Foi criado um índice de árvore B+ sobre o campo cidade, onde existem 95000 registros com valores iguais a São Paulo e 500 registros com valores iguais a Fernandopolis. Além disto, também existe um índice B+ sobre o campo chave nome_cliente. Agora considere a seguinte consulta: Select nome_cliente from cliente where cidade = São Paulo Execute a consulta acima e analise se o otimizador usará ou não o índice sobre o campo cidade. Sugestão, analise o plano de execução.

Seletividade de Atributos Na consulta anterior, uma vez que 95% dos registros possuem o campo cidade igual a São Paulo, o uso do índice torna-se dispendioso, indicando para o otimizador que é mais econômico fazer uma varredura em toda a tabela cliente. Agora vamos considerar a consulta: Select nome_cliente from cliente where cidade = Fernandopolis Uma vez que somente 5% dos registros possuem o valor Fernandopolis para o atributo cidade, é interessante para o otimizador fazer o uso do índice para resolver esta consulta.

As fases de execução de uma consulta Consulta Análise sintática e Léxica da consulta Conversão para Álgebra relacional Gerar plano de consulta E analisar o mais econômico Figura 2: Etapas necessárias para a execução de uma consulta. Catálogo do Sistema Executar a Consulta Banco de Dados

Fase 1 Análise sintática e léxica da consulta Nesta fase é feito um parsing. É aqui que o otimizador valida sintaticamente uma expressão SQL Fase 2 Conversão da consulta para a forma relacional O modelo relacional permite que consultas sejam expressas através de operadores O modelo relacional permite que consultas sejam expressas através de operadores sobre as relações. As tabelas são consideradas conjuntos de registros e, portanto, podem ser operadas pelos operadores de conjunto como união (U), intersecção ( ) e produto cartesiano (X). Além disso, podem ser filtradas por operadores de seleção (σ), ou podem ser projetadas ( ) em relações com menos atributos.

Fase 2 Conversão da consulta para a forma relacional Por tratar os algoritmos de manipulação de relações como operações bem definidas, o gerenciador pode usar as propriedades matemáticas desses operadores para escolher as melhores opções de consulta. Então, neste estágio, a consulta em SQL é convertida internamente para uma forma algébrica equivalente. Por exemplo, a consulta feita em SQL: SELECT nome, telefone FROM cliente WHERE nome like Pedro% AND cidade = São Carlos Pode ser expressa algebricamente, por exemplo como: Alternativa 1: (nome, telefone) (σ nome like Pedro% ) (σ cidade= São Carlos )(cliente))

Fase 2 Conversão da consulta para a forma relacional (nome, telefone) Projeta para o usuário os nomes e telefones Dos registros selecionados das etapas anteriores. σ nome like Pedro% Seleciona os registros onde o Nome contenha a palavra Pedro σ cidade= São Carlos cliente Seleciona os registros onde a cidade é Igual a São Carlos Lê todos os registros de Cliente Figura 3: Árvore de Consulta referente à alternativa 1.

Fase 2 Conversão da consulta para a forma relacional Uma alternativa é expressar a consulta original como: Alternativa 2: (nome, telefone) (σ (nome like Pedro% )^σ cidade= São Carlos )(cliente)) (nome, telefone) Projeta para o usuário os nomes e telefones σ (nome like Pedro% )^σ cidade= São Carlos Seleciona os registros. cliente Lê todos os registros de cliente Figura 4: Árvore de Consulta referente à alternativa 2.

Fase 3 Gerar planos de consultas e analisar o mais econômico Este passo envolve a criação de um conjunto de planos alternativos expressos em álgebra relacional, considerando aspectos como a existência de índices, distribuição de valores de dados (seletividade), agrupamento físico de dados armazenados, etc.

Fase 4 Executar a consulta É neste estágio que a consulta escolhida será executada e o resultado, entregue para o usuário. Exemplos práticos: Veja o script random. Analise cada um dos planos de execução.