Buscar

Ex Aula2

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 3, do total de 58 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 6, do total de 58 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você viu 9, do total de 58 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Prévia do material em texto

IMPLEMENTAÇÃO DE BANCO DE DADOS
Aula 10 - Otimização
IMPLEMENTAÇÃO DE BANCO DE DADOS
Conteúdo Programático desta aula
Aprender a criar Visões, Indices e Sequences
 TRANSAÇÕES
IMPLEMENTAÇÃO DE BANCO DE DADOS
IMPLEMENTAÇÃO DE BANCO DE DADOS
FASES DE EXECUÇÃO DE COMANDO
 TRANSAÇÕES
IMPLEMENTAÇÃO DE BANCO DE DADOS
IMPLEMENTAÇÃO DE BANCO DE DADOS
Analise Sintática
IMPLEMENTAÇÃO DE BANCO DE DADOS
Analisador Sintático
IMPLEMENTAÇÃO DE BANCO DE DADOS
Analise Semântica
IMPLEMENTAÇÃO DE BANCO DE DADOS
Fluxo de Processamento
IMPLEMENTAÇÃO DE BANCO DE DADOS
Geração de Plano Lógico
IMPLEMENTAÇÃO DE BANCO DE DADOS
Geração de Plano Lógico
IMPLEMENTAÇÃO DE BANCO DE DADOS
Geração de Plano Lógico
IMPLEMENTAÇÃO DE BANCO DE DADOS
Geração de Plano Lógico
IMPLEMENTAÇÃO DE BANCO DE DADOS
Geração de Plano Lógico
IMPLEMENTAÇÃO DE BANCO DE DADOS
Geração de Plano Lógico
IMPLEMENTAÇÃO DE BANCO DE DADOS
Geração de Plano Lógico
IMPLEMENTAÇÃO DE BANCO DE DADOS
Geração de Plano Lógico
IMPLEMENTAÇÃO DE BANCO DE DADOS
Geração de Plano Lógico
IMPLEMENTAÇÃO DE BANCO DE DADOS
Otimização de Consultas
IMPLEMENTAÇÃO DE BANCO DE DADOS
Otimização de Consultas
IMPLEMENTAÇÃO DE BANCO DE DADOS
Otimização Heurística
IMPLEMENTAÇÃO DE BANCO DE DADOS
Otimização Heurística
IMPLEMENTAÇÃO DE BANCO DE DADOS
Otimização Heurísticas
IMPLEMENTAÇÃO DE BANCO DE DADOS
Otimização Heurística
IMPLEMENTAÇÃO DE BANCO DE DADOS
Otimização Heurística
IMPLEMENTAÇÃO DE BANCO DE DADOS
Otimização Heurística
IMPLEMENTAÇÃO DE BANCO DE DADOS
Otimização Heurística
IMPLEMENTAÇÃO DE BANCO DE DADOS
Avaliação de Custos
IMPLEMENTAÇÃO DE BANCO DE DADOS
Componentes de Custos
IMPLEMENTAÇÃO DE BANCO DE DADOS
Componentes de Custos
IMPLEMENTAÇÃO DE BANCO DE DADOS
Otimizador de consultas
• Abordagens clássicas:
– Otimização por regras: Plano de execução é gerado ao se aplicar heurísticas tidas como eficientes (independente de estatísticas). Por exemplo, o otimizador poderia sempre escolher utilizar um índice que esteja disponível sobre uma coluna.
– Otimização por custo: Determina que plano de execução é o mais eficiente ao considerar diferentes “caminhos de acesso” usando as estatísticas sobre os objetos do esquema (tabelas e índices) acessados pelo comando SQL (mais eficiente e recomendado)
A otimização por custo demanda estatísticas
IMPLEMENTAÇÃO DE BANCO DE DADOS
Planos de Execução
O plano de execução é o roteiro que o SGBD segue para recuperar as linhas especificadas pela consulta. Uma série de detalhes sobre como a consulta deve ser processada é especificada no plano. Em especial, quais operações serão aplicadas para resolver a consulta e em que ordem elas serão processadas.
• O que é especificado no plano de execução:
– Ordem de acesso às tabelas
– Ordem de operações de seleção, projeção e junção
– Índices utilizados
– Tipos de junção
– Ordenações
– Tabelas intermediárias
• Existem dois tipos básicos de operação:
– Métodos de acesso (varreduras seqüenciais e indexadas)
– Outras operações (junções, uniões, ordenação, etc...)
IMPLEMENTAÇÃO DE BANCO DE DADOS
Otimização baseada em custo
IMPLEMENTAÇÃO DE BANCO DE DADOS
Query Transformer: Transforma uma consulta SQL em uma expressão algébrica.
Estimator
Fator de seletividade
Cardinalidade
Custo (CPU + E/S + comunicação)
Plan Generator: Gera um conjunto de planos equivalentes, porém com custos diferentes
Ordem de junção
Ordem dos operadores
Algoritmos de junção (sort-merge, nested loops, hash join )
Otimização baseada em custo
IMPLEMENTAÇÃO DE BANCO DE DADOS
Otimização baseada em custo
Principais caminhos de acesso
TABLE ACCESS (bom para baixa seletividade)
FULL SCAN
BY ROW ID
INDEX SCAN (bom para baixa seletividade)
Unique
Range
Full
Hash join
JOIN
Nested-Loop
Sort-Merge
Hash Join (não disponível em otimização baseada em regra)
IMPLEMENTAÇÃO DE BANCO DE DADOS
Otimização baseada em regra
Usa praticamente os mesmos caminhos de acesso da otimização baseada em custo
Não contém HASH JOIN
Utiliza heurísticas para gerar os planos de execução
Regras de comutatividade e associatividade
(A U C) JOIN (B U C)  (A JOIN B) U C
Junção de seleção  Seleção de junção
Seleção e projeção são antecipadas sobre a junção
Busca por índices são preferidas
etc.
IMPLEMENTAÇÃO DE BANCO DE DADOS
Varredura Seqüencial 
IMPLEMENTAÇÃO DE BANCO DE DADOS
Varredura Indexada 
IMPLEMENTAÇÃO DE BANCO DE DADOS
Varredura Indexada 
IMPLEMENTAÇÃO DE BANCO DE DADOS
Varredura Indexada 
IMPLEMENTAÇÃO DE BANCO DE DADOS
Ordenação (Sorting)
• Operação básica para diversas outras operações físicas
• Resolve a cláusula ORDER BY
• Se o conjunto a ser ordenado não cabe em memória, esta operação pode ser muito cara
• Pode ser utilizada em DISTINCT, UNION, INTERSECTION, JOIN…
IMPLEMENTAÇÃO DE BANCO DE DADOS
Otimização baseada em custo
Exemplos
SELECT * 
FROM EMP
WHERE Name = ‘Jackson’
TABLE ACCESS FULL SCAN
SELECT * 
FROM EMP
WHERE Empno = 7369
TABLE ACCESS BY INDEX ROW ID
 INDEX UNIQUE SCAN (PK_EMP)
IMPLEMENTAÇÃO DE BANCO DE DADOS
Otimização baseada em custo
Exemplos
SELECT *
FROM PROJECT
WHERE PNAME LIKE 'Contas%'
TABLE ACCESS BY INDEX ROW ID
 INDEX RANGE SCAN (SYS_C01)
SELECT *
FROM PROJECT
WHERE PNAME LIKE ‘%Contas'
TABLE ACCESS FULL SCAN
IMPLEMENTAÇÃO DE BANCO DE DADOS
Junções
• Os algoritmos clássicos utilizados em junções são:
– Loops Aninhados (Nested Loops Join)
– Ordenação/Intercalação (Merge Join)
– Hashing (Hash Join)
IMPLEMENTAÇÃO DE BANCO DE DADOS
Nested Loops
IMPLEMENTAÇÃO DE BANCO DE DADOS
Nested Loops
IMPLEMENTAÇÃO DE BANCO DE DADOS
Nested Loops
IMPLEMENTAÇÃO DE BANCO DE DADOS
Nested-Loops
SELECT * 
FROM EMP, DEPT 
WHERE EMP.DEPTNO = DEPT.DEPTNO
IMPLEMENTAÇÃO DE BANCO DE DADOS
IMPLEMENTAÇÃO DE BANCO DE DADOS
IMPLEMENTAÇÃO DE BANCO DE DADOS
Merge Join
SELECT * 
FROM EMP, DEPT 
WHERE EMP.DEPTNO = DEPT.DEPTNO
IMPLEMENTAÇÃO DE BANCO DE DADOS
IMPLEMENTAÇÃO DE BANCO DE DADOS
IMPLEMENTAÇÃO DE BANCO DE DADOS
Hash Join
SELECT * 
FROM EMP, DEPT 
WHERE EMP.DEPTNO = DEPT.DEPTNO
IMPLEMENTAÇÃO DE BANCO DE DADOS
Otimização baseada em custo
Exemplos
SELECT W.*
FROM EMPLOYEE E, WORKS_ON W
WHERE E.SSN = W.ESSN AND E.SALARY > 800
NESTED LOOPS
 TABLE ACCESS FULL (WORKS_ON)
 TABLE ACESS BY INDEX ROWID
 INDEX UNIQUE SCAN (SYS_C01)
IMPLEMENTAÇÃO DE BANCO DE DADOS
Otimização baseada em custo
Exemplos
SELECT W.*
FROM WORKS_ON W, EMPLOYEE E
WHERE E.SSN = W.ESSN AND E.SALARY > 800
NESTED LOOPS
 TABLE ACCESS FULL SCAN (EMPLOYEE)
 INDEX RANGE SCAN (SYS_C012)
/* – Chave primária de WORKS_ON
IMPLEMENTAÇÃO DE BANCO DE DADOS
ORACLE - REGRAS
Rank
Caminho de Acesso
1
SinglerowbyROWID
2
Single row by cluster join
3
Single row by hash cluster key with unique or primary key
4
Single row by unique or primary key
5
Clusterjoin
6
Hashclusterkey
7
Indexedclusterkey
8
Compositeindex
9
Single-columnindex
10
Bounded range search on indexed columns
11
Unbounded range search on indexed columns
12
Sort-mergejoin
13
MAX or MIN of indexed column
14
ORDER BY on indexed column
15
Fulltablescan
55
IMPLEMENTAÇÃO DE BANCO DE DADOS
ORACLE – COMPUTANDO ESTATÍSTICAS
56
IMPLEMENTAÇÃO DE BANCO DE DADOS
ORACLE – ACESSO AO PLANO DE EXECUÇÃO
57
IMPLEMENTAÇÃO DE BANCO DE DADOS
Próxima Aula
Revisão para AV2
 TRANSAÇÕES
IMPLEMENTAÇÃO DE BANCO DE DADOS
IMPLEMENTAÇÃO DE BANCO DE DADOS

Outros materiais