José Antônio da cunha IFRN Administração de Banco de Dados.

Slides:



Advertisements
Apresentações semelhantes
Criando aplicações WEB
Advertisements

Object Query Language - OQL
Banco de Dados Prof. Antonio.
Triggers Renata Viegas.
SQL Structured Query Language (continuação)
Indexação Automática de Documentos
Banco de Dados SQL TRIGGERS (Gatilhos)
Especificação de Software
FACULDADE DOS GUARARAPES
Algoritmos para Projeção e Operações de Conjuntos AULA 22 Profa. Sandra de Amo GBC053 – BCC
Introdução à Engenharia da Computação
Indexação e Hashing Muitas consultas referenciam apenas uma pequena porção dos registros em uma tabela. Portanto necessitamos ser capaz de localizar estes.
Banco de dados Profª Kelly Medeiros.
Query Tuning Lílian Simão Oliveira.
Treinamento do Microsoft® Access® 2010
Tuning Lílian Simão Oliveira.
Conceitos Programas Programação Linguagens de Programação SQL.
SISTEMAS OPERACIONAIS I
Baseado no material do Professor Raul Paradeda
Planilha Eletrônica - Excel
BD I / Processamento de Consultas Prof. Altigran Soares da Silva IComp/UFAM.
SQL Server Comando PIVOT.
Banco de Dados I I Comandos SQL
Linguagem SQL Prof. Juliano.
Fundamentos de Banco de Dados Fundamentos de Banco de Dados Prof. Gale 2º. Semestre 2008.
1 24/4/ :29 FMU – 1. Semestre – Tecnologia – Analise e Desenvolvimento de Sistemas Professor: Eduardo Silvestri Aluno:Clóvis de Oliveira- RA
AOBD 07/08 Mini-Projecto 2 Soluções. 1) Considere que existem três relações R1=(A,B,C), R2=(C,D) e R3=(D,E) com chaves primárias A, C e D, respectivamente.
Aula 09: Comando SELECT: Ligações entre tabelas e Subconsultas
Recuperação de Dados Banco de Dados Carina Farias
Daniel Paulo SQL Server 2014 Módulo II Daniel Paulo
VBA – Visual Basic para Aplicativos
Laboratório de Programação Prof. Oscar Luiz Monteiro de Farias
BD SQL (Insert, Update, Delete) e Select Hayslan Nicolas Colicheski Bucarth – IFRO / 2015 –
Aula 5 Bioestatística. Estatísticas para uma variável.
Administração de Banco de Dados José Antônio da Cunha CEFET-RN.
1 Programação de Banco de Dados José Antônio da Cunha George Azevedo da Silva.
Web Application Rafael Muniz e Marcus Vinícius Plugins MAVEN 04/04/2009 Revisão 12/04/2009.
RHAYANE BORGES SILVA 4º ANO ADMINISTRAÇÃO Mensuração e Escala Parte II.
Cálculo Numérico Computacional Prof. Linder Cândido da Silva.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Capítulo 4 SQL básica.
Aula 5. Teste de Hipóteses II. Capítulo 12, Bussab&Morettin “Estatística Básica” 7ª Edição.
José Antônio da Cunha IFRN Administração de Banco de Dados.
Guia de Referência para Fornecedores Visão Fornecedor.
Programação Gráfica em Java Swing Aula Na aula passada vimos: Thread Animação Técnica de desenho eficiente (double-bufferring)
Glossário Autor: Skyup Informática. Atividade - Glossário A atividade glossário permite que o administrador crie páginas de definições, um dicionário.
Tecnologias e Linguagens para Banco de Dados I Prof. João Ricardo Andrêo 1/6/ :17 1 Atividades: 1 – Descreva os tipos de dados existentes no Microsoft.
IFRN Técnico em Informática para Internet Desenvolvimento de Algoritmos Prof. Gilbert Azevedo.
Método Básico de Análise de Dados Ricardo Pereira Brandão Prof. Dr.a Maria Aparecida. 5º administração. Estudo Interdisciplinares de Técnicas de Pesquisa.
José Antônio da Cunha CEFET - RN José Antônio -
INE5408 Estruturas de Dados Introdução a Árvores - Conceitos - Árvores Binárias - Métodos e algoritmos de percurso - Métodos e algoritmos de balanceamento.
SISTEMAS OPERACIONAIS MEMÓRIA VIRTUAL. INTRODUÇÃO Memória Virtual é um técnica sofisticada e poderosa de gerenciamento de memória, onde a MP e a MS são.
Programação para Internet Aula 12 SQL (Comandos de Consulta ao BD)
Programação p/ INTERNET - HTML Prof. João Ricardo Andrêo 2/6/ :46 1 TABELAS A TAG é utilizada para apresentação de dados no formato de tabelas (apresentação.
José Antônio da Cunha 2/6/2016 José Antônio - CEFET-RN 1 Disciplina: Banco de Dados.
Normalização (4FN) Na literatura aparecem outras formas normais, como a forma normal de Boyce/Codd, a 4FN e a 5FN. Destas a única que tem importância na.
José Antônio da Cunha 3/6/2016 José Antônio - CEFET-RN 1 Copyright © Dale Carnegie & Associates, Inc.
Banco de Dados para Redes– Aula 03 Prof. Me. Ronnison Reges Vidal.
Detalhamento da Norma de Sistema de Gestão Ambiental: NBR ISO 14001:2004 Prefácio Introdução 1 Objetivo e campo de aplicação 2 Referências normativas 3.
Unidade 4 Avaliação, Informação e Bem Estar. Uma distinção fundamental entre dado e informação é que o primeiro é puramente sintático e a segunda.
Lógica de programação Estruturas de seleção Estruturas de repetição Sub-Rotinas 1.
Gerenciamento de Projetos Prioritários acompanhados pelo software Microsoft Project Tania Faerman Julho/2010.
Copyright © 2011 Pearson Education, Inc. Publishing as Pearson Addison-Wesley Capítulo 5 Mais SQL: Consultas Complexas, Triggers e Views.
Diagramas de Sequência e Comunicação
1 1 Slide Programação Dinâmica Prof. Dr. Alexandre Pereira Salgado Junior.
EDITOR DE PLANILHAS MICROSOFT EXCEL 2010
Organização de Arquivos e Indexação
Calculo de Hoare Daniel Soares, Gabriel Alabarse Hernandez(150756) e Vanius Zapalowski(150843)
Aula 5 - Métodos. Desenvolvimento de Programas A melhor forma de construir programas grandes é dividi-los em programas menores que executam tarefas específicas.
Administração de Banco de Dados José Antônio da Cunha.
Algoritmos Grupos de Slides No 3. Prof. SIMÃO Estrutura de decisão composta "se senão" if else end Feito por Prof. Jean Marcelo SIMÃO e revisado por Prof.
Transcrição da apresentação:

José Antônio da cunha IFRN Administração de Banco de Dados

Otimização e Tunning O otimizador de consultas do SQL Server, fornece soluções para o problema de como cada consulta deve ser executada (por exemplo, quais índices devem ser usados, em que ordem as tabelas devem ser acessadas, como as junções devem ser implementadas).

Otimização e Tunning Essas soluções são chamadas plano de execução de consultas, e a principal tarefa do otimizador é selecionar o plano ótimo.

Otimização e Tunning As vezes, as informações disponíveis para o otimizador não são suficientes para que ele determine o plano ótimo. Portanto, é muito importante saber como os programadores podem melhorar a eficiência de seus aplicativos. A seguir discutiremos alguns desses problemas.

Otimização e Tunning Junção versus Sub-consultas Correlacionadas. Cada consulta, normalmente, pode ser expressa com uma das muitas declarações SELECT equivalentes. Por exemplo, cada operação de junção pode ser expressa usando-se a sub-consulta correlacionada equivalente e vice-versa. Esses métodos diferem no sentido de que uma operação de junção é consideravelmente mais eficiente do que a sub-consulta correlacionada correspondente.

Otimização e Tunning Exemplo 1 Faça um comando SQL que obtenha os sobrenomes de todos os funcionários que trabalharam no projeto “p3”.

Otimização e Tunning Solução A SELECT emp_nome FROM empregado, trabalha_em WHERE empregado.emp_no = trabalha_em.emp_no AND projeto_no = ‘p3’

Otimização e Tunning Solução B SELECT emp_nome FROM empregado WHERE ‘p3’ IN (SELECT projeto_no FROM trabalha_em WHERE empregado.emp_no =trabalha_em.emp_no)

Otimização e Tunning Comentários: o desempenho da solução A é melhor do que o da solução B. a consulta mais interna da solução B deve ser avaliada várias vezes, pois ela possui a coluna emp_no, que pertence à tabela empregado na consulta mais externa. Observe que o valor da coluna emp_no muda sempre que o SQL Server examina uma linha diferente da tabela empregado na consulta mais externa. A junção na solução A funciona mais rapidamente, pois ela avalia todos os valores da coluna projeto_no da tabela trabalha_em apenas uma vez.

Otimização e Tunning Declaração Incompleta É possível um programador especificar uma declaração SQL incompleta, tal como, um produto cartesiano entre duas tabelas. O resultado de um produto cartesiano contém a combinação de linhas de duas tabelas. Por exemplo, se uma tabela contém linhas e a outra 100, o resultado do produto cartesiano das duas tabelas será uma tabela com 1 milhão de linhas.

Otimização e Tunning Declaração Incompleta Como regra geral, se sua consulta está acessando n diferentes tabelas, você deve ter pelo menos n-1 condições de junção relacionadas a todas as tabelas, para evitar uma produto cartesiano.

Otimização e Tunning Declaração Incompleta Nota: O SQL Server oferece suporte à opção ROWCONT na declaração SET, que restringe a exibição de linhas selecionadas a um certo número. Desse modo, o uso dessa opção limita o número de linhas que pode ser criado por um produto cartesiano não-intencional.

Otimização e Tunning Declaração Incompleta A opção ROWCOUNT faz o sistema parar de processar uma declaração DML, depois que o número especificado de linhas for retornado. Para ativar faça  SET ROWCOUNT número de linha Para desativar faça  SET ROWCOUNT 0

Otimização e Tunning Declaração Incompleta A opção STATISTICS IO – faz o sistema apresentar informações estatísticas sobre a quantidade de atividade de disco gerada pela consulta; por exemplo, o número de operações de E/S de leitura e gravação processadas com a consulta. A opção STATISTICS TIME – faz o sistema apresentar o processamento, a otimização e o tempo de execução da consulta.

Otimização e Tunning Operador LIKE O operador LIKE compara os valores de uma coluna com um padrão especificado. Se essa coluna estiver associada a um índice, a pesquisa da string de caracteres será executada com o índice existente. Uma condição baseada em curinga na posição inicial obriga o SQL Server a examinar cada valor na coluna; isto é, o índice existente não serve para nada. O motivo é que os índices trabalham determinando rapidamente se o valor solicitado é maior ou menor do que os valores em vários nós da B-TREE. Se os caracteres iniciais dos valores desejados não forem especificado, então essas comparações não poderão ser feitas.

Otimização e Tunning Exemplo 2 Obtenha os números de funcionários de todos os empregados cujos sobrenomes terminam com “es”. Solução SELECT emp_no FROM empregado WHERE emp_nome LIKE ‘%es’

Otimização e Tunning Comentários: Não é possível processar a consulta, mesmo que o índice da coluna emp_nome exista. A razão é que os caracteres do início dos valores de dados não são conhecidos dentro da condição de busca na cláusula WHERE.

Otimização e Tunning Declarações T_SQL e Desempenho de Consultas O SQL Server oferece suporte a duas declarações que permitem a otimização de consultas: 1.UPDATE STATISTICS 2.SET

Otimização e Tunning As estatísticas nas tabelas de sistemas não são constantemente atualizadas. A declaração UPDATE STATISTICS atualiza as informações sobre a distribuição de valores de chaves nos índices especificados. A modificação das informações com a declaração UPDATE STATISTICS deve ser processada nos seguintes casos: Após o carregamento inicial dos dados. Após a execução de uma declaração DML (INSERT, UPDATE ou DELETE) que afete um grande número de linhas.

Otimização e Tunning A segunda declaração SET, tem várias opções. Algumas dessas são usadas para otimização de consultas e algumas para outros propósitos.

Otimização e Tunning As seguintes opções são usadas para otimização de consultas: 1. SHOWPLAN_TEXT 2. SHOWPLAN_ALL 3. NOEXEC 4. FORCEPLAN 5. ROWCOUNT 6. STATISTICS IO 7. STATISTICS TIME ON – Ativa e OFF - Desativa

Otimização e Tunning SHOWPLAN-TEXT e SHOWPLAN_ALL – apresentam o plano de execução para a consulta. A opção SHOWPLAN_ALL – exibe as mesmas informações detalhadas sobre o plano de execução para a consulta que SHOWPLAN_TEXT, com a adição de uma estimativa dos requisitos de recursos para essa declaração.

Otimização e Tunning SET SHOWPLAN_TEXT ON GO Select empregado.dept_no FROM empregado, trabalha_em WHERE empregado.emp_no = trabalha_em.emp_no AND trabalha_em.projeto_no = ‘p1’

Otimização e Tunning

30/5/2016 José Antônio 25 O resultado mostra o plano de execução selecionado para a declaração SELECT especificada. As colunas de junção nas tabelas empregado e trabalha_em são indexadas; portanto, o otimizador de consultas escolhe o método de loop aninhado para executar a operação de junção.

Otimização e Tunning FORCEPLAN – torna possível que você influencie diretamente uma otimização de consulta. Usar essa opção faz o SQL Server acessar as tabelas na mesma ordem em que elas estão listadas na cláusula FROM da declaração SELECT.

Otimização e Tunning SET FORCEPLAN ON GO Select empregado.dept_no FROM empregado, trabalha_em WHERE empregado.emp_no = trabalha_em.emp_no AND trabalha_em.projeto_no = 'p1'

Otimização e Tunning O SQL Server oferece três diferentes técnicas de processamento de junção: 1. Junção de loop aninhado; 2. Junção de mesclagem; 3. Junção com hashing.

Otimização e Tunning Junção de Loop Aninhado A junção de loop aninhado é a única técnica de processamento suportada nas versões anteriores do SQL Server. A junção de loop aninhado funciona pela “força bruta” em outras palavras, para cada linha da tabela exterior, cada linha da tabela interior é recuperada e comparada.

Otimização e Tunning Algoritmo ( A e B são duas tabelas temporárias ) For cada linha na tabela externa do: ler a linha em A para cada linha na tabela interna do: ler a linha em B if A.coluna_junção = B.coluna_junção then aceite a linha e a inclui no conjunto resultante end if end for End for

Otimização e Tunning A junção de loop aninhado será muito lenta se não houver índices para uma das colunas de junção. Sem índices, o SQL Server teria de percorrer a tabela externa uma vez e a tabela interna n vezes, o n é o número de linhas da tabela externa. Portanto, o otimizador de consultas escolhe esse método apenas se a coluna de junção da tabela interna estiver indexada; assim, a tabela interna não precisa ser percorrida para cada linha da tabela externa.

Otimização e Tunning Junção de Mesclagem A junção de mesclagem fornece uma alternativa de custo efetivo à construção de um índice para uma junção de loop aninhado. As linhas das tabelas unidas devem ser fisicamente classificadas usando-se os valores da coluna de junção. As duas tabelas são então percorridas na ordem das colunas de junção, fazendo corresponder as linhas com mesmo valor para as colunas de junção. Nota: nenhum índice é exigido quando o otimizador de consultas executa uma junção de mesclagem.

Otimização e Tunning Algoritmo a)Classifica a tabela externa em ordem ascendente usando a coluna de junção. b)Classifica a tabela interna em ordem ascendente usando a coluna de junção Para cada linha na tabela externa faça: ler a linha em A para cada linha a partir da tabela interna com um valor menor ou igual a coluna de junção faça: ler a linha em B if A.coluna_junção = B.coluna_junção then aceite a linha e a inclui no conjunto resultante end if fim para Fim Para

Otimização e Tunning Junção com Hashing Uma junção com hashing é usada quando não há entrada classificada. As linhas das duas tabelas são redeclaradas no mesmo arquivo de hash, usando a mesma função de hashing nas colunas de junção que as chaves com hashing. O método de junção com hashing não exige índice. Portanto, esse método é altamente aplicável para consultas ad hoc (em que não podem ser esperados índices).

Otimização e Tunning Nota: A otimização de aplicativos de dados é um dos fatores mais importantes que afetam o desempenho. Modificando as propriedades existentes de uma consulta, você pode melhorar significativamente seu desempenho. O otimizador de consultas é a parte do SQL Server que decide como melhor executar uma consulta. Ele gera vários planos de execução para determinada consulta e seleciona o plano de menor custo.