343o de consultas.ppt) - subversion.assembla.comsubversion.assembla.com/svn/puc_minas/6º...

39
Tecnologias de Bancos de Dados Processamento e Processamento e Otimiza Otimiza ç ç ão de ão de consultas consultas Professor: Tadeu dos Reis Faria Set/2008

Transcript of 343o de consultas.ppt) - subversion.assembla.comsubversion.assembla.com/svn/puc_minas/6º...

Page 1: 343o de consultas.ppt) - subversion.assembla.comsubversion.assembla.com/svn/puc_minas/6º PERIODO/BANCO DE DADOS II... · pois em alguns casos a estratégia encontrada não é ...

Tecnologias de Bancos de Dados

Processamento eProcessamento e OtimizaOtimizaçção de ão de consultasconsultas

Professor: Tadeu dos Reis Faria

Set/2008

Page 2: 343o de consultas.ppt) - subversion.assembla.comsubversion.assembla.com/svn/puc_minas/6º PERIODO/BANCO DE DADOS II... · pois em alguns casos a estratégia encontrada não é ...

Referências Bibliográficas

NAVATHE, Shamkant B., ELSMARI, Ramez. Sistemas de Banco de Dados. 4 ed. Addinson Wesley Publishing, 2005. Capítulo 15

Page 3: 343o de consultas.ppt) - subversion.assembla.comsubversion.assembla.com/svn/puc_minas/6º PERIODO/BANCO DE DADOS II... · pois em alguns casos a estratégia encontrada não é ...

Introdução

� Existe nos SGBDR um módulo conhecido como “otimizador de consultas”

� A expressão “otimização de consultas”, embora seja frequentemente utilizada, é na verdade imprópria, pois em alguns casos a estratégia encontrada não égarantidamente a melhor possível (ótima)

� Encontrar a estratégia ótima consumiria muito tempo, e exigiria o uso de informação dinâmica sobre o conteúdo e organização em disco das tabelas

� Em vez de “otimização de consultas”, deveríamos dizer “planejamento de execução de consultas”

Page 4: 343o de consultas.ppt) - subversion.assembla.comsubversion.assembla.com/svn/puc_minas/6º PERIODO/BANCO DE DADOS II... · pois em alguns casos a estratégia encontrada não é ...

Processamento e Otimização de Consulta

� Passos para execução de uma consulta:– Exame (scanner) e validação da consulta (parser).

� Análise léxica (scanner): identifica os itens léxicos da linguagem – palavras-chave do SQL, nomes de atributos e nomes de relacionamentos.

� Análise sintática (parser): verifica a sintaxe para consulta para determinar se ela está de acordo com as regras sintáticas da linguagem de consulta.

– Otimizador de consultas� Representação interna da consulta utilizando árvore/grafo� Planejamento de uma estratégia para recuperação dos dados, a partir dos arquivos do

anco de dados– Gerador de código da consulta

� Gera o código que executa o plano de consulta

� Em algumas linguagens de consulta, a estratégia está definida na maneira em que o programador implementa a consulta

� Em SQL, que é uma linguagem declarativa, apenas os resultados desejados são especificados (especifica “o que” fazer e não “como fazer”)

� Portanto, a otimização de consultas é necessária em SGBD relacionais, baseados em SQL

Page 5: 343o de consultas.ppt) - subversion.assembla.comsubversion.assembla.com/svn/puc_minas/6º PERIODO/BANCO DE DADOS II... · pois em alguns casos a estratégia encontrada não é ...

Processamento de consulta

Figura 15.1 Passos típicos durante a execução de uma consulta de alto nível.

Page 6: 343o de consultas.ppt) - subversion.assembla.comsubversion.assembla.com/svn/puc_minas/6º PERIODO/BANCO DE DADOS II... · pois em alguns casos a estratégia encontrada não é ...

Processamento e Otimização de Consulta

� Passos do otimizador de consultas:– Tradução de consultas SQL em álgebra

relacional– Otimização usando o resultado da tradução

� Estratégias de otimização– Cada SGBD adota estratégias específicas para otimizar as

consultas. As mais comuns são:• Utilização de regras heurísticas (regras).• Estimativa de custo de execução (escolher o plano de

menor custo ).– O ORACLE pode usar regras ou custo. O DB2 da IBM usa

somente custo.

Page 7: 343o de consultas.ppt) - subversion.assembla.comsubversion.assembla.com/svn/puc_minas/6º PERIODO/BANCO DE DADOS II... · pois em alguns casos a estratégia encontrada não é ...

Tradução de Consultas SQL para Álgebra Relacional (AR)

� Uma consulta SQL é traduzida para uma expressão equivalente de álgebra relacional.

– Consultas SQL são decompostas em blocos– Cada bloco é transformado em uma expressão da AR– Os blocos são otimizados internamente e através de

decisões sobre a ordem de execução dos blocos– Um bloco contém um único comando SELECT-FROM-

WHERE, incluindo cláusulas GROUP BY e HAVING, se houver

� A expressão em álgebra é traduzida em uma árvore de consulta

� Essa árvore é otimizada

Page 8: 343o de consultas.ppt) - subversion.assembla.comsubversion.assembla.com/svn/puc_minas/6º PERIODO/BANCO DE DADOS II... · pois em alguns casos a estratégia encontrada não é ...

Tradução de Consultas SQL para Álgebra Relacional (AR)

Exemplo:SELECT nomeFROM empregadoWHERE salario > ( SELECT MAX(salario)

FROM empregadoWHERE numdep = 5)

SELECT MAX(salario)FROM empregadoWHERE numdep = 5

Obs.: c=result.query anterior

SELECT nomeFROM empregadoWHERE salario > c

decomposição

Page 9: 343o de consultas.ppt) - subversion.assembla.comsubversion.assembla.com/svn/puc_minas/6º PERIODO/BANCO DE DADOS II... · pois em alguns casos a estratégia encontrada não é ...

Algoritmos para Ordenação Externa

� A ordenação é um dos principais recursos para otimização de consultas

– Usada sempre que aparece ORDER BY– Usada para implementar algoritmos SORT-MERGE para

processar junções– Usada na eliminação de tuplas duplicadas (cláusula

DISTINCT, ou em operações de conjuntos)� A ordenação pode ser evitada se houver um índice� Ordenação externa é usada para grandes tabelas� Estratégia usual: SORT-MERGE

– Dividir a tabela em pedaços que caibam na memória– Ordenar cada pedaço e salvar em disco– Mesclar os pedaços (à la MergeSort)

Page 10: 343o de consultas.ppt) - subversion.assembla.comsubversion.assembla.com/svn/puc_minas/6º PERIODO/BANCO DE DADOS II... · pois em alguns casos a estratégia encontrada não é ...

Algoritmos para Select(σ)

Page 11: 343o de consultas.ppt) - subversion.assembla.comsubversion.assembla.com/svn/puc_minas/6º PERIODO/BANCO DE DADOS II... · pois em alguns casos a estratégia encontrada não é ...

Algoritmos para Select(σ)

� Métodos de busca para seleções simples:– S1. Busca linear (força bruta): recuperar todos os

registros no arquivo, testando se os valores atendem ou não à condição de seleção

– S2. Busca binária: executada sobre o atributo que determina a ordenação do arquivo (ex.: OP1, se CPF for a chave de ordenação do arquivo)

– S3: Uso de índice primário (ou chave de hashing): executada sobre o atributo que determina a indexação do arquivo. Recupera no máximo um registro (ex.: OP1, se CPF for a chave de indexação)

Page 12: 343o de consultas.ppt) - subversion.assembla.comsubversion.assembla.com/svn/puc_minas/6º PERIODO/BANCO DE DADOS II... · pois em alguns casos a estratégia encontrada não é ...

Algoritmos para Select(σ)

� Métodos de busca para seleções simples:– S4. Uso de índice primário para recuperar múltiplos registros: executado

se a comparação não for de igualdade mas for sobre um atributo chave de um índice primário (ex.: NUMDEP em OP2)

– S5. Uso de índice em cluster para recuperar múltiplos registros: executado se a comparação não for de igualdade e for sobre atributo não-chave que possui índice em cluster (ex.: NUD=5 em OP3)

– S6. Uso de índice secundário (B-tree, B+-tree) sobre comparação de igualdade: usado para recuperar um único registro se o atributo de indexação for chave (valores únicos) ou para recuperar múltiplos registros se o atributo de indexação não for chave

� OBS:– O método S1 é o único que não pressupõe a existência de índice.– Os métodos S4 e S6 podem ser utilizados em consultas por faixas

(range queries). Exemplo: 1000 <= SALARIO <= 1500.

Page 13: 343o de consultas.ppt) - subversion.assembla.comsubversion.assembla.com/svn/puc_minas/6º PERIODO/BANCO DE DADOS II... · pois em alguns casos a estratégia encontrada não é ...

Algoritmos para Select(σ)

� Métodos de busca para seleções múltiplas:– S7. Seleção conjuntiva usando índice individual: se um atributo

envolvido em uma única condição simples em uma cláusula de junção conjuntiva possuir um caminho de acesso que permita usar S2 a S6, selecionar com base nesse atributo e checar o atendimento às demais condições em cada registro recuperado

– S8. Seleção conjuntiva usando índice composto: se dois ou mais atributos envolvidos em comparações de igualdade na condição de seleção conjuntiva, e um índice composto existir para esses atributos, selecionar com base nesses atributos e checar o atendimento às demais condições em cada registro recuperado (ex.: OP5, com índice sobre CPFE e PNO)

Page 14: 343o de consultas.ppt) - subversion.assembla.comsubversion.assembla.com/svn/puc_minas/6º PERIODO/BANCO DE DADOS II... · pois em alguns casos a estratégia encontrada não é ...

Algoritmos para Select(σ)

� Métodos de busca para seleções múltiplas:– S9. Seleção conjuntiva pela interseção de

apontadores de registros: se índices secundários ou outros caminhos de acesso estiverem disponíveis para mais de um dos atributos envolvidos na condição de seleção conjuntiva, cada índice pode ser usado para recuperar um conjunto de apontadores para registros que satisfazem parcialmente à condição. A interseção entre esses conjuntos indica os registros que devem ser recuperados

Page 15: 343o de consultas.ppt) - subversion.assembla.comsubversion.assembla.com/svn/puc_minas/6º PERIODO/BANCO DE DADOS II... · pois em alguns casos a estratégia encontrada não é ...

Algoritmos para JOIN� Operação de junção: é uma das operações mais caras para o

processamento de consultas (eqüijunção e junção natural).� Casos típicos:

� Métodos:– J1. Junção usando loop aninhado (força bruta): para cada registro r de R,

recuperar todo registro s de S e testar se os dois registros atendem a condição de junção

– J2. Junção usando loop simples: requer estrutura de acesso para recuperar os registros correspondentes na outra tabela, portanto um dos atributos da condição de junção precisa ser a chave de um índice

– J3. Junção sort-merge: se os registros de R e de S estiverem fisicamente ordenados pelos atributos A e B, realizar a junção pela varredura simultânea dos dois arquivos (este é o método mais eficiente possível

Page 16: 343o de consultas.ppt) - subversion.assembla.comsubversion.assembla.com/svn/puc_minas/6º PERIODO/BANCO DE DADOS II... · pois em alguns casos a estratégia encontrada não é ...

Algoritmos para Projeção

�Operação de projeção e operações de conjunto:– Projeção: implementação simples

(exceto quando existe a cláusula DISTINCT e a chave não faz parte da lista de atributos).

– Operações de conjunto: utilizam variações da técnica de sortmerge.

Page 17: 343o de consultas.ppt) - subversion.assembla.comsubversion.assembla.com/svn/puc_minas/6º PERIODO/BANCO DE DADOS II... · pois em alguns casos a estratégia encontrada não é ...

Algoritmos para Agregação� Operações de agregação:

– Sem o GROUP BY: pode utilizar índices, caso o campo seja indexado.

– Com o GROUP BY: utilização da técnica anterior a cada grupo separadamente (mais complexo). Se existir um índice cluster para o atributo de agrupamento será mais fácil.

– Os operadores de agregação podem ser implementados usando uma varredura na tabela ou o percurso de um índice, se disponível

– Se existir índice, o resultado de MIN e MAX pode ser obtido diretamente

– O resultado de COUNT pode ser obtido no índice, sem a necessidade de acessar os registros

– SUM e AVG podem ser muito simplificados se forem sobre um valor indexado

Page 18: 343o de consultas.ppt) - subversion.assembla.comsubversion.assembla.com/svn/puc_minas/6º PERIODO/BANCO DE DADOS II... · pois em alguns casos a estratégia encontrada não é ...

Utilização de heurísticas na otimização de consultas

� Usada se o otimizador do SGBD usar regras� São regras aplicadas para melhorar o desempenho

de uma consulta� Seqüência básica de eventos:

– O parser da consulta gera uma representação interna inicial

– A otimização é realizada de acordo com regras heurísticas

– Um plano de execução é construído, de modo a gerar grupos de operações com base nos arquivos e índices envolvidos

– O plano é repassado ao processador de runtime para escalonamento

Page 19: 343o de consultas.ppt) - subversion.assembla.comsubversion.assembla.com/svn/puc_minas/6º PERIODO/BANCO DE DADOS II... · pois em alguns casos a estratégia encontrada não é ...

heurísticas na otimização de consultas

� Idéia básica: aplicar operações de seleção e projeção antes de aplicar junções ou outras operações binárias.

– Justificativa: seleção e projeção reduzem o tamanho do arquivo de entrada, enquanto a junção tende a aumentar este tamanho.

� Árvore de consulta: estrutura em árvore que corresponde a uma expressão da álgebra relacional.

� Para uma mesma consulta, pode haver várias árvores de consulta.

� Em vez das regras heurísticas, cálculos baseados em um modelo de custos podem ser usados. Esse modelos serão explicados mais adiante.

Page 20: 343o de consultas.ppt) - subversion.assembla.comsubversion.assembla.com/svn/puc_minas/6º PERIODO/BANCO DE DADOS II... · pois em alguns casos a estratégia encontrada não é ...

Árvores e grafos de consulta� Árvore de consulta: corresponde a uma expressão

em AR� Relações (tabelas usadas) de entrada são

representadas em folhas� Operações são representadas em nós internos� A execução consiste em executar as operações

assim que os operandos correspondentes estiverem disponíveis, e substituir o nó interno com o resultado (uma relação)

� O processo termina quando o nó raiz é executado

Page 21: 343o de consultas.ppt) - subversion.assembla.comsubversion.assembla.com/svn/puc_minas/6º PERIODO/BANCO DE DADOS II... · pois em alguns casos a estratégia encontrada não é ...

Árvores e grafos de consulta� Grafos de consulta: relações são indicadas

em nós, valores constantes são indicados em nós com linhas duplas, e condições de seleção e junção são indicadas nos arcos

� Grafos de consulta não indicam a ordem de execução, ao contrário das árvores

� Existe apenas um grafo correspondente a cada consulta

� Árvores de consulta são preferidas para a otimização, pois o processamento precisa ter sua ordem definida

Page 22: 343o de consultas.ppt) - subversion.assembla.comsubversion.assembla.com/svn/puc_minas/6º PERIODO/BANCO DE DADOS II... · pois em alguns casos a estratégia encontrada não é ...

Árvores e grafos de consulta

Figura 15.4 Duas árvores de consulta para a consulta Q2. (a) Árvore de consulta correspondente à expressão da álgebra relacional para Q2. (b) Árvore de consulta inicial (canônica) para a consulta SQL Q2. (c) Gráfico de consulta para Q2.

Exemplo:

SELECT p.pnumber, p.dnum, e.lname,e.address, e.bdate from project

p, department d, employee eWHERE p.dnum = d.dnumberAND d.ssnmgr = e.ssnAND p.location=‘stafford’

Page 23: 343o de consultas.ppt) - subversion.assembla.comsubversion.assembla.com/svn/puc_minas/6º PERIODO/BANCO DE DADOS II... · pois em alguns casos a estratégia encontrada não é ...

Otimização heurística de árvoresde consulta

Exemplo : seja o seguinte comandoSELECT unome FROM empregado, trabalha_em, projeto WHERE pnome= ‘aquarius’ AND pnumero=nrp andessn=ssn and dtanasc > ’31-12-1957’

Figura 15.5 Passos na conversão de uma árvore de consulta durante a otimização heurística. (a) Árvore de consulta inicial (canônica) para a consulta SQL Q. (b) Transferência das operações SELECTpara baixo na árvore de consulta. (continua)

Duas seleções (PNOME e DATANASC)são aplicadas antes dos produtos cartesianos, para reduzir o númerode tuplas resultantes

Transformações a partir da árvore canônica usam regras deequivalência entre expressões da AR para melhorar progressivamente esse resultado

Page 24: 343o de consultas.ppt) - subversion.assembla.comsubversion.assembla.com/svn/puc_minas/6º PERIODO/BANCO DE DADOS II... · pois em alguns casos a estratégia encontrada não é ...

Otimização heurística de árvoresde consulta

Figura 15.5 Passos na conversão de uma árvore de consulta durante a otimização heurística. (c) Aplicação, em primeiro lugar, da operação SELECT mais restritiva. (d) Substituindo CARTESIANPRODUCT e SELECT por operações JOIN. (continua)

As posições de EMPREGADO ePROJETO são trocadas para que a condição de seleção mais restritiva (PNOME=...) sejaexecutada primeiro

Produtos cartesianos seguidos de seleção são substituídos por JOINs

Page 25: 343o de consultas.ppt) - subversion.assembla.comsubversion.assembla.com/svn/puc_minas/6º PERIODO/BANCO DE DADOS II... · pois em alguns casos a estratégia encontrada não é ...

Otimização heurística de árvoresde consulta

Figura 15.5 Passos na conversão de uma árvore de consulta durante a otimização heurística. (e) Transferência das operaçõs PROJECT para baixo na árvore de consulta.

Manter a cada passo apenas os atributos necessários – deslocaras operações PROJECT para baixo

Page 26: 343o de consultas.ppt) - subversion.assembla.comsubversion.assembla.com/svn/puc_minas/6º PERIODO/BANCO DE DADOS II... · pois em alguns casos a estratégia encontrada não é ...

Otimização heurística de árvoresde consulta

�As transformações do exemplo são possíveis apenas se forem comprovadamente equivalentes, de modo a não alterar o resultado final

�Ou seja, a cada passo as árvores de consulta são equivalentes

�Existem regras gerais de transformação que garantem a equivalência

Page 27: 343o de consultas.ppt) - subversion.assembla.comsubversion.assembla.com/svn/puc_minas/6º PERIODO/BANCO DE DADOS II... · pois em alguns casos a estratégia encontrada não é ...

Otimização heurística de árvoresde consulta

�Regras gerais de transformação

Page 28: 343o de consultas.ppt) - subversion.assembla.comsubversion.assembla.com/svn/puc_minas/6º PERIODO/BANCO DE DADOS II... · pois em alguns casos a estratégia encontrada não é ...

Otimização heurística de árvoresde consulta

�Regras gerais de transformação (cont)

Page 29: 343o de consultas.ppt) - subversion.assembla.comsubversion.assembla.com/svn/puc_minas/6º PERIODO/BANCO DE DADOS II... · pois em alguns casos a estratégia encontrada não é ...

Otimização heurística de árvoresde consulta

�Regras gerais de transformação (cont)

Page 30: 343o de consultas.ppt) - subversion.assembla.comsubversion.assembla.com/svn/puc_minas/6º PERIODO/BANCO DE DADOS II... · pois em alguns casos a estratégia encontrada não é ...

Otimização heurística de árvoresde consulta

� Passos de um algoritmo de otimização heurística1. Usando R1, quebrar operações SELECT com condições

conjuntivas em uma cascata de SELECTs2. Usando R2, R4, R6, R10, mover cada SELECT para baixo

na árvore tanto quanto possível (dependendo dos atributos envolvidos na condição de seleção)

3. Usando R5, R9 quanto à comutatividade e associatividade, rearranjar os nós folha de acordo com o seguinte:

3.1 Posicionar os nós folha com condições mais restritivas para execução mais cedo (produzem menos tuplas, têm o menor tamanho absoluto, ou têm menor seletividade)

3.2 Garantir que a ordenação dos nós folha não provoque a execução de um produto cartesiano (p.ex., as condições mais restritivas não têm um JOIN em comum, e produzem mais de uma tupla cada)

Page 31: 343o de consultas.ppt) - subversion.assembla.comsubversion.assembla.com/svn/puc_minas/6º PERIODO/BANCO DE DADOS II... · pois em alguns casos a estratégia encontrada não é ...

Utilização de estimativas decustos para otimização de

consultas

� As regras heurísticas não são suficientes em todos os casos

� Existem situações de otimização que podem ser melhor resolvidas se existir informação sobre os volumes de dados envolvidos

� Para que isso funcione corretamente, as estimativas de custos têm que ser realistas e justas

� O custo do processamento das alternativas também não pode ser excessivo

� Estimativas de custos são mais empregadas em consultas compiladas antecipadamente, enquanto para consultas interativas a escolha de uma alternativa pode afetar o tempo de resposta

Page 32: 343o de consultas.ppt) - subversion.assembla.comsubversion.assembla.com/svn/puc_minas/6º PERIODO/BANCO DE DADOS II... · pois em alguns casos a estratégia encontrada não é ...

Utilização de estimativas decustos para otimização de

consultas� A otimização de consultas baseada em custos

usa técnicas de otimização propriamente ditas para encontrar a solução ótima em um espaço de soluções, minimizando o valor de uma função objetivo (função de custo)

� As funções objetivo são aproximadas, e portanto nem quando a solução ótima do problema de custos é encontrado podemos garantir que se trata da solução ótima da estratégia para a consulta

Page 33: 343o de consultas.ppt) - subversion.assembla.comsubversion.assembla.com/svn/puc_minas/6º PERIODO/BANCO DE DADOS II... · pois em alguns casos a estratégia encontrada não é ...

Utilização de estimativas decustos para otimização de

consultas

� Componentes de custo para execução de consultas:1. Custo de acesso para armazenamento secundário: custo

para pesquisar, ler e gravar blocos de dados.2. Custo de armazenamento: custo de armazenar arquivos

intermediários gerados por uma estratégia de execução.3. Custo de computação: custo de operações realizadas em

memória ou nos buffers de dados.4. Custo de utilização de memória: custo referente ao

número de buffers de memória necessários.5. Custo de comunicação: custo de mover a consulta e os

seus resultados do banco de dados até o local onde a consulta se originou.

Page 34: 343o de consultas.ppt) - subversion.assembla.comsubversion.assembla.com/svn/puc_minas/6º PERIODO/BANCO DE DADOS II... · pois em alguns casos a estratégia encontrada não é ...

Utilização de estimativas decustos para otimização de

consultas � Uso de informações do catálogo (exemplos de informações)

– Número de registros (tuplas) (r)– Tamanho médio do registro (R)– Número de blocos de disco (b)– Fator de bloco (número de registros por bloco) (fb)– Número de níveis dos índices multinível (x)– Número de valores distintos de um atributo (d)– Seletividade (sl): fração dos registros que satisfaz a uma

condição de igualdade sobre o atributo (ex.: em 1000 registros, a seletividade de um atributo CPF é 0,001; a de um atributo sexo é0,50)

� Atributo chave: sl = 1/r� Atributo não chave: sl = d/r

– Cardinalidade da seleção (s): número médio de registros que satisfaz a uma condição de igualdade sobre o atributo (s = sl * r)

� Essas informações são aproximadas, dificilmente estarão totalmente atualizadas

Page 35: 343o de consultas.ppt) - subversion.assembla.comsubversion.assembla.com/svn/puc_minas/6º PERIODO/BANCO DE DADOS II... · pois em alguns casos a estratégia encontrada não é ...

Otimização de consultas� Observações:

– Para grandes bancos de dados, deve-se dar ênfase na redução do custo de acesso ao armazenamento secundário (número de transferências de blocos entre disco e memória principal).

– Para pequenos bancos de dados, que podem ser armazenados em memória, a ênfase deve ser na redução do custo de cálculo.

– Para bancos de dados distribuídos, o custo de comunicação pode ser o mais importante.

� Otimização de consulta no Oracle:– Pode usar Métodos baseados em heurísticas ou Métodos

baseados em custo.– Possibilidade do desenvolvedor de aplicação especificar “dicas”

para o otimizador.� Otimização de consulta no DB2:

– Métodos baseados em custo.– Possibilidade do DBA ou desenvolvedor de aplicação especificar

“dicas” para o otimizador.

Page 36: 343o de consultas.ppt) - subversion.assembla.comsubversion.assembla.com/svn/puc_minas/6º PERIODO/BANCO DE DADOS II... · pois em alguns casos a estratégia encontrada não é ...

Dicas praticas para Otimização de consultas

Page 37: 343o de consultas.ppt) - subversion.assembla.comsubversion.assembla.com/svn/puc_minas/6º PERIODO/BANCO DE DADOS II... · pois em alguns casos a estratégia encontrada não é ...

Algumas questões sobre Performance no ambiente do SGBD� O que é performance afinal ?

– Desempenho ?– Tempo de execução ?– Tempo de resposta ?– Como alguém mede Performance ?

� CPU BUSY ?– Tempo de resposta ?– Intuição ?– Reclamações ?– Ligações telefônicas ?

Page 38: 343o de consultas.ppt) - subversion.assembla.comsubversion.assembla.com/svn/puc_minas/6º PERIODO/BANCO DE DADOS II... · pois em alguns casos a estratégia encontrada não é ...

Algumas questões sobre Performance no ambiente do SGBD

� O que é um bom tempo de resposta– Tempo de resposta médio de 5 segundos ou

menos em 90 % das vezes ?– Para "x" transações por segundo, um tempo de

resposta médio de 3 segundos ?– "x" mensagens por dia, hora, minuto, segundo ?

� Como o tempo de resposta é medido?– Do 1º SQL até o COMMIT ?– De fila do comando ?– O que o usuário final vê ?

Page 39: 343o de consultas.ppt) - subversion.assembla.comsubversion.assembla.com/svn/puc_minas/6º PERIODO/BANCO DE DADOS II... · pois em alguns casos a estratégia encontrada não é ...

Algumas questões sobre Performance no ambiente do SGBD� O que monitorar nas transações?

– Tempo de Input Queue ? Tempo de Output Queue– Projeto do programa ?– Número de pontos de COMMIT no programa ?– Como o tempo de resposta é medido?

� O que deve ser monitorado no SGBD ?– Processamento do programa de aplicações ?– Projeto do programa ?– Número e o tipo de CALLs SQL ?– Projeto do data base ?

� Projeto das tabelas ?� Índices ?

– Disponibilidade de buffers ?