Otimizacao de sql

Disponível somente no TrabalhosFeitos
  • Páginas : 33 (8211 palavras )
  • Download(s) : 0
  • Publicado : 23 de agosto de 2012
Ler documento completo
Amostra do texto
Professor: Aparecido Disciplina: Recuperação de Informação Métodos de Otimização SQL em Banco de Dados

4º BN Ronaldo Boscatto Marcelo Rosalem Daminello

08 39

52051-0 52143-5

25/05/2004

INDÍCE
1. Otimização da Consulta 1.1. 1.2. Introdução Um exemplo simples 03 04

2. O processo de Otimização: Panorama 2.1. Estágios do Processo global de otimização 2.1.1. 2.1.2. 2.1.3. 2.1.4.Ordenação da consulta em determinada representação interna Conversão à forma padrão Escolha dos procedimentos de baixo nível 05 05 06 08 09 10 13 14 16 18 19 21 22 23 25 26 28 29

3. Estimativa do custo de acessos usando índices 4. Estratégia de Junção 4.1. 4.2. 4.3. 4.4. 4.5. Interação Simples Junção por Intercalação Uso de um Índice Junção com Hashing Junção Tripla

Geração de planos deconsulta e escolha do melhor

5. Estratégia de Junção para prcessadores paralelos 5.1. 5.2. Junção Paralela Junção Múltipla em duto (PIPELINED)

6. Otimização Física 8. Bibliografia

7. Estrutura do Otimizador de Consultas

2

25/05/2004

1.
1.1. Introdução

Otimização da Consulta

A otimização da consulta apresenta tanto um desafio como uma oportunidade; um desafio para os sistemasrelacionais: um desafio porque, a otimização é necessária - pelo menos nos ambientes de grande porte - , a intenção sendo que o sistema tenha um desempenho aceitável; uma oportunidade porque é precisamente uma das forças da abordagem relacional o fato de, dado o alto nível semântico das expressões relacionais, esta otimização é factível em primeiro lugar. Num sistema não-relacional, ao contrário,onde as solicitações do usuário são expressas em nível semântico inferior, toda otimização deve ser feita manualmente pelo usuário humano. Num sistema assim, é o usuário, não o sistema, quem decide que operações a nível de registro são necessárias e em que sequência devem ser executadas - e, se o usuário tomar a decisão errada, não há nada que o sistema possa fazer para melhorar a situação.

Emconsequência, a vantagem da otimização não se restringe ao fato dos usuários se preocuparem quanto a melhor expressar suas consultas. Pelo contrário, há uma possibilidade real de que o otimizador o faça melhor que o programador humano, porque o otimizador pode ter informações disponíveis - em relação, por exemplo, aos valores de dados correntes - que o programador pode não ter, e é capaz de avaliaruma gama maior de alternativas do que o programador seria capaz de fazer. O objetivo geral do otimizador, pois, é escolher uma estratégia para avaliar uma dada expressão relacional. E, mais importante, em geral não há nenhuma garantia de que a estratégia escolhida para a implementação da consulta seja realmente "ótima", qualquer que seja o padrão desta medida; pode ocorrer que seja, mas em geraltudo o que se sabe de certo é que a estratégia "otimizada"é um aperfeiçoamento da versão original não otimizada.

3

25/05/2004

1.2.

Um exemplo simples
Começamos com um exemplo simples que ilustra a necessidade ( e também um pouco de

potencial) de otimização. Consideremos a consulta "Obter nomes de fornecedores que forneçam a peça P2", para o qual a formulação em SQL possível seria:SELECT DISTINCT S.SNAME FROM S,SP WHERE S.S# = SP.S# AND SP.P# = 'P2' ;

Suponhamos que o banco de dados contenha 100 fornecedores e 10.000 expedições, das quais apenas 50 relativas à peça P2. Então a seqüência de eventos seria a seguinte: 1.Computar o produto cartesiano das relações S e SP. Este passo envolve a leitura de 10.100 tuplas, mas produz uma relação que consiste apenas em 100 * 10.000= 1.000.000 de tuplas (e em escrever estas 1.000.000 de tuplas de volta no disco). 2.Restringir o resultado do Passo 1 como especificado pela cláusula WHERE. Este espaço envolve a leitura de 1.000.000 de tuplas, mas produz uma relação que consiste em apenas 50 tuplas (que podemos presumir que serão mantidas na memória central). 3.Projetar o resultado do Passo 2 sobre SNAME de forma a produzir o...
tracking img