SlideShare uma empresa Scribd logo
Administração de Bases de Dados



Afinação da Aplicação
  (Desempenho da Aplicação)



       Carlos Pampulim Caldeira
    http://www.di.uevora.pt/~ccaldeira
    http://makingdatawork.blogspot.pt
Optimizador Relacional
•   SQL, standard para acesso à informação
•   Alto nível de abstracção
•   Quais são os dados pretendidos
•   Não especifica como os ir buscar
•   Access paths, caminhos de acesso aos dados
•   Forma desestruturada de escrita
•   Operações a nível de conjuntos de dados




• Permite a adaptação do SQL ao ambiente
  dinâmico da base de dados:
    • Tabelas crescem / diminuem
    • Índices adicionados / removidos
    • Base dados fragmentada / desfragmentada
Optimizador Relacional
Optimizador Relacional
Aplicações estão isoladas:
  • Estrutura (independência Lógica)
  • Forma armazenamento (independência Física)
Index Selectivity
Taxa de duplicação numa coluna indexada. Selectividade
ideal é 1, apenas alcansável em índices únicos.


Is = total valores distintos / número de linhas da tabela

    Ex. Boa selectividade: 88 000 /100 000 = 0.88


Is < 0,1
Medição: Index Selectivity
SELECT COUNT (DISTINCT “Disciplina”)
                      “Valores distintos” FROM disciplina;
Valores distintos
  ---------------
            5
SELECT COUNT(*) “Nº Total Linhas” FROM disciplina;
Nº Total Linhas
  -----------------
             14
Is = 5 / 14
  = 0,35(714…)
Medição: Index Selectivity
Cardinalidade
[Código Postal] Quantos distintos haverá em PT?
Valores distintos
  ---------------
      1000?

Se tiver uma tabela com registo de 10 milhões de
licenças de condução?
Selectividade = 1000 / 10 000 000
Is = 0,0001%
Medição: Index Selectivity
Ajuda a decidir entre:
     • B*Tree
     • Bitmap
1. Se SELECTIVIDADE > 4% é B*Tree
2. Se SELECTIVIDADE < 4% é Bitmap

Os índices, com uma selectividade inferior a 0,1%, devem ser do tipo Bitmap pois
caso contrário nem serão levados em consideração pelo optimizador relacional.
Medição: Index Selectivity
Auditoria aos índices em uso (Oracle)
                         SELECT
                          INDEX_NAME "Nome",
                          DISTINCT_KEYS / NUM_ROWS * 100
                         "SELECTIVITY %",
                          NUM_ROWS,
                          DISTINCT_KEYS "DISTINCT",
                          LEAF_BLOCKS,
                          CLUSTERING_FACTOR,
                          BLEVEL "LEVEL",
                          AVG_LEAF_BLOCKS_PER_KEY "ALFBPKEY"
                         FROM
                          DBA_INDEXES
                         WHERE
                          DISTINCT_KEYS / NUM_ROWS < .1 AND
                          NUM_ROWS > 0
                         ORDER BY "SELECTIVITY %" DESC;
Index Density
Percentagem de duplicados numa coluna indexada

Supor tabela com 2 milhões linhas:
 1 / NUM_DISCTINCT (not null)

 1 / 2 000 000 = 0,0000005
 1 / 2 = 0,5
Joins
Dois métodos de join:
   • Join em ciclo (nested-loop join)
        uma linha é identificada na tabela outer e em seguida a tabela inner é
        varrida à procura de uma ligação e, assim sucessivamente até à última
        ocorrência na tabela outer.

   • Join combinado (merge-scan join)
        as linhas das tabelas são ordenadas e depois cada uma das tabelas é
        lida sequencialmente e as colunas coincidentes são assinaladas e as
        linhas devolvidas.

Notas: O join combinado deve ser o escolhido quando a tabela joined um número muito
      grande linhas ou quando há muitas linhas que satisfazem a condição, ou ainda quando
      os predicados do join não são muito selectivos.
Joins
Nº de tabelas na junção   Nº de possíveis (ordens) de junções
1                         1
2                         2
3                         6
4                         24
5                         120
6                         720
7                         5040
8                         40320
9                         363880
10                        3628800
11                        39916800
12                        479001600
13                        6227020800
14                        87178291200
15                        1307674368000
16                        20922789888000
Caminho de acesso aos dados
Varrimento das tabelas:
 • não existe(m) índice(s) ou as condições
   [WHERE] excluem o(s) índice(s)
 • grande número de linhas que satisfazem as
   condições
 • índices com baixo clustering (index page cluster ratio)
 • a tabela é demasiado pequena (poucas linhas)
Caminho de acesso aos dados
Acesso directo pelo índice (direct index lookup)

   SELECT        número, apelido, nome
   FROM          empregado
   WHERE         cargo = “Gerente”
   AND           função = 1
   AND           departamento = “D01” ;



         cargo           função      departamento
Caminho de acesso aos dados
Varrimento do índice:
Varrimento por comparação exacta
      (matching index scan)

SELECT      número, apelido, nome
FROM        empregado
WHERE       cargo = “Gerente”
AND         função = 1
AND         departamento = “D01” ;
Caminho de acesso aos dados
Varrimento do índice:

 Varrimento por comparação exacta
       (matching index scan)

                                             Pág Raíz




                          Pág                              Pág
                         Nonleaf                          Nonleaf




                Pág                 Pág                  Pág.
               Nonleaf             Nonleaf              Nonleaf




       Folha             Folha                  Folha             Folha   Folha
Caminho de acesso aos dados
Varrimento do índice:

 Varrimento pela posição relativa
    (nonmatching index scan)



SELECT         número, apelido, nome
FROM           empregado                Não há predicado de
WHERE          função = 1               entrada no índice,
AND            departamento = “D01” ;   logo a estrutura do
                                        índice não pode ser
                                        utilizada.
Caminho de acesso aos dados
Varrimento do índice:

  Varrimento pela posição relativa
     (nonmatching index scan)

                                           Pág Raíz




                        Pág                              Pág
                       Nonleaf                          Nonleaf




              Pág                 Pág                  Pág.
             Nonleaf             Nonleaf              Nonleaf




     Folha             Folha                  Folha             Folha   Folha
Caminho de acesso aos dados

Varrimento do índice:

 • varrimento do índice > varrimento da tabela
Caminho de acesso aos dados
Clustered ou unclustered:

 • Acesso associado ao índice: lê pág. dados uma única
 • Acesso desassociado ao índice: múltiplas leituras
   mesma pág. de dados

 A CP não é uma boa opção para ser um índice clustered dado que o acesso
 aos seus valores é aleatório enquanto que o clustered favorece o acesso
 sequencial.

 Os índices clustered ao lerem as páginas das folhas nunca lêm a mesma duas
 vezes. Já os índices unclustered fazem múltiplos pedidos pois os dados estão
 espalhados pela tabela.
Caminho de acesso aos dados
Index screening:


 SELECT        número, apelido
 FROM          empregado
 WHERE         cargo = “Gerente”
                                             matching
 AND           função = 1
 AND           salário > 40000 ;             pos. relativo




      cargo        função     departamento      salário
Caminho de acesso aos dados

Acesso restrito aos índices (index covering)

 SELECT      número, apelido
 FROM        empregado
 WHERE       cargo = “Gerente”
 AND         função = 1
 AND         salário > 40000 ;


   cargo   função   departamento   salário   apelido   número
Caminho de acesso aos dados

Acesso restrito aos índices (index covering)

 • Não há I/O adicional à tabela
 • “Encorajar” o acesso index-only
    • Sobrecarga de colunas indexadas
Caminho de acesso aos dados

Acesso múltiplo (multi-index access):

 SELECT       número, apelido
 FROM         empregado
 WHERE        cargo = “Gerente”
 AND          função = 1 ;


      cargo             função
Caminho de acesso aos dados

Acesso múltiplo (multi-index access):

 Por vezes pode minimizar-se o número de índices
 criados promovendo múltiplos índices simples,
 i.e., com uma única coluna, em vez de muitas
 colunas compostas indexadas. A decisão de
 aplicar uns e/ou outros depende da eficiência do
 SGBDR na utilização das diversas formas de
 indexação.


  Nota: AND; OR
Ordenação de dados

A utilização de índices para evitar SORT's:

•   Distinct
•   Union
•   Group by
•   Order by
Desprezo pelo índice

O optimizador não utiliza o índice:

 • Sem predicados
 • Join com várias/muitas tabelas
 • Estatísticas desactualizadas
Views: acesso

Dois métodos:

 • View merging
 • View materialization

 O view merging é o método mais eficiente. O SQL aplicado no DDL da view é
 aglutinado (merged) com o SQL que refere a view. O SQL resultante é então
 utilizado para determinar o caminho de acesso aos dados.

 Quando não é possível combinar o SQL da view com o SQL que acede à view é
 criada uma tabela temporária que armazena os resultados da view. O SQL que
 acede à view é depois aplicado aos resultados guardados na tabela temporária. Daí
 a relativa ineficiência da view materialization.
Re(escrita) de queries

Alguns optimizadores:

WHERE coluna1 >= 1 AND coluna1 <= 100   , podem transformar esta

cláusula nesta:


WHERE coluna1 BETWEEN 1 AND 100
Re(escrita) de queries
transitividade do predicado (predicate transitive closure)

SELECT d."Nome do Departamento", e."Nome", e."Número de Funcionário"
FROM     empregado e, departamento d
WHERE e."Código do Departamento" = d."Código do Departamento"
AND      d."Código do Departamento" = "DO59";



   SELECT d."Nome do Departamento", e."Nome", e."Número de Funcionário"
   FROM    empregado e, departamento d
   WHERE e."Código do Departamento" = d."Código do Departamento"
   AND      e."Código do Departamento" = "DO59";
Optimização pelo custo
 O optimizador relacional é o subsistema de um
 SGBDR que gera planos de execução.

• Efeito da modificação dos parâmetros de
  configuração (Oracle):
  o cost-based
Análise do caminho de acesso

SQL Server:
• ShowPlan

Oracle:
• Explain
    set timing on; (SQL*Plus)
SQL: regras de Mullins

Codificação do SQL para a eficiência:

Regra 1: Depende...
Regra 2: Posição na query da cláusula
         mais restritiva
e prosseguindo até à 11ª regra.




Mullins, C. 2002. Chapter 12. Application Performance. Database Administration: The
Complete Guide to Practices and Procedures. Addison Wesley.
Optimização do SQL

Video [“esclarecedor”] sobre SQL
Optimization em Oracle: ver aqui.
Afinação da Aplicação - Oracle

SQL Analyse (Oracle): ver aqui.

Mais conteúdo relacionado

Destaque

6. Como subir vídeos de youtube.com?
6.  Como subir vídeos de youtube.com?6.  Como subir vídeos de youtube.com?
6. Como subir vídeos de youtube.com?Ramón París Lago
 
Apresentação WebTraining
Apresentação WebTrainingApresentação WebTraining
Apresentação WebTraining
WebTraining
 
Proyectos Biblioteca Popular Manuel Belgrano
Proyectos Biblioteca Popular Manuel BelgranoProyectos Biblioteca Popular Manuel Belgrano
Proyectos Biblioteca Popular Manuel Belgrano
guideuf
 
Netvibes
NetvibesNetvibes
Desenhos de crianças Teatro do Lataço
Desenhos de crianças Teatro do LataçoDesenhos de crianças Teatro do Lataço
Desenhos de crianças Teatro do Lataço
Vera Laporta
 
De la literatura a la escritura
De la literatura a la escrituraDe la literatura a la escritura
De la literatura a la escrituraMEN
 
Rri assistencia cf
Rri  assistencia cfRri  assistencia cf
Rri assistencia cfjribalt1
 
Imagenes de la nevada en El Retiro, Madrid, 9 enero 2009
Imagenes de la nevada en El Retiro, Madrid, 9 enero 2009Imagenes de la nevada en El Retiro, Madrid, 9 enero 2009
Imagenes de la nevada en El Retiro, Madrid, 9 enero 2009
Eduardo Rodriguez Lopez
 
Listado Tanganika Marzo
Listado Tanganika MarzoListado Tanganika Marzo
Listado Tanganika MarzoMiguel Mora
 
Nobel Da Economia
Nobel Da EconomiaNobel Da Economia
Nobel Da Economiamigasjardim
 

Destaque (20)

6. Como subir vídeos de youtube.com?
6.  Como subir vídeos de youtube.com?6.  Como subir vídeos de youtube.com?
6. Como subir vídeos de youtube.com?
 
Apresentação WebTraining
Apresentação WebTrainingApresentação WebTraining
Apresentação WebTraining
 
Redes Sociales
Redes SocialesRedes Sociales
Redes Sociales
 
Proyectos Biblioteca Popular Manuel Belgrano
Proyectos Biblioteca Popular Manuel BelgranoProyectos Biblioteca Popular Manuel Belgrano
Proyectos Biblioteca Popular Manuel Belgrano
 
Netvibes
NetvibesNetvibes
Netvibes
 
pantallasos
pantallasospantallasos
pantallasos
 
Anuario 2010
Anuario 2010Anuario 2010
Anuario 2010
 
Comparacion Estadisti
Comparacion EstadistiComparacion Estadisti
Comparacion Estadisti
 
Desenhos de crianças Teatro do Lataço
Desenhos de crianças Teatro do LataçoDesenhos de crianças Teatro do Lataço
Desenhos de crianças Teatro do Lataço
 
De la literatura a la escritura
De la literatura a la escrituraDe la literatura a la escritura
De la literatura a la escritura
 
Rri assistencia cf
Rri  assistencia cfRri  assistencia cf
Rri assistencia cf
 
Aprendi
AprendiAprendi
Aprendi
 
NHS Points 3-14-2010
NHS Points 3-14-2010NHS Points 3-14-2010
NHS Points 3-14-2010
 
Imagenes de la nevada en El Retiro, Madrid, 9 enero 2009
Imagenes de la nevada en El Retiro, Madrid, 9 enero 2009Imagenes de la nevada en El Retiro, Madrid, 9 enero 2009
Imagenes de la nevada en El Retiro, Madrid, 9 enero 2009
 
Listado Tanganika Marzo
Listado Tanganika MarzoListado Tanganika Marzo
Listado Tanganika Marzo
 
Cancer de tiroides
Cancer de tiroidesCancer de tiroides
Cancer de tiroides
 
Lecture5
Lecture5Lecture5
Lecture5
 
Nadie Se Cruza Por Azar
Nadie Se Cruza Por AzarNadie Se Cruza Por Azar
Nadie Se Cruza Por Azar
 
Nobel Da Economia
Nobel Da EconomiaNobel Da Economia
Nobel Da Economia
 
MuñEcas Reborn
MuñEcas RebornMuñEcas Reborn
MuñEcas Reborn
 

Semelhante a Gestão da Aplicação

Web App Flaws - SQL Injection
Web App Flaws - SQL InjectionWeb App Flaws - SQL Injection
Web App Flaws - SQL Injection
David Gomes Guimarães
 
SQL Oracle
SQL OracleSQL Oracle
SQL Oracle
Pablo Garcia
 
Banco de Dados.pptx
Banco de Dados.pptxBanco de Dados.pptx
Banco de Dados.pptx
BrunoWuo
 
Conceitos Basicos em Banco de Dados
Conceitos Basicos em Banco de DadosConceitos Basicos em Banco de Dados
Conceitos Basicos em Banco de Dados
Alefe Variani
 
Melhorando o desempenho de suas consultas no MySql
Melhorando o desempenho de suas consultas no MySqlMelhorando o desempenho de suas consultas no MySql
Melhorando o desempenho de suas consultas no MySql
Helder Lopes
 
Modulo-02-Aula-03-conteudo-para-cer.pptx
Modulo-02-Aula-03-conteudo-para-cer.pptxModulo-02-Aula-03-conteudo-para-cer.pptx
Modulo-02-Aula-03-conteudo-para-cer.pptx
AugustoNicolau2
 
LabMM4 (T06 - 12/13) - Auto-associações e Introdução ao SQL
LabMM4 (T06 - 12/13) - Auto-associações e Introdução ao SQLLabMM4 (T06 - 12/13) - Auto-associações e Introdução ao SQL
LabMM4 (T06 - 12/13) - Auto-associações e Introdução ao SQLCarlos Santos
 
Data WareHOuse
Data WareHOuseData WareHOuse
Data WareHOuse
Sérgio Falco
 
Agbd aula4 sql_ddl
Agbd aula4 sql_ddlAgbd aula4 sql_ddl
Agbd aula4 sql_ddl
Daniel Fernandes Costa
 
Slide da aula 04
Slide da aula 04Slide da aula 04
Slide da aula 04
AndrezaRaquel1
 
2006 - ADONET.ppt
2006 - ADONET.ppt2006 - ADONET.ppt
2006 - ADONET.ppt
Ricardo Guerra Freitas
 
Arquitetura e sgbd de um banco de dados
Arquitetura e sgbd de um banco de dadosArquitetura e sgbd de um banco de dados
Arquitetura e sgbd de um banco de dados
diogocbj
 
Consultas SQL
Consultas SQLConsultas SQL
Consultas SQL
Alexandre Silva
 
Base de dados no Excel 1.pdf
Base de dados no Excel 1.pdfBase de dados no Excel 1.pdf
Base de dados no Excel 1.pdf
Celso Paquete Cellso
 
SQL Server ES - Escrevendo queries rápidas (Performance/Query Tuning)
SQL Server ES - Escrevendo queries rápidas (Performance/Query Tuning)SQL Server ES - Escrevendo queries rápidas (Performance/Query Tuning)
SQL Server ES - Escrevendo queries rápidas (Performance/Query Tuning)
Dirceu Resende
 
Projeto de Sistemas - Aula004
Projeto de Sistemas - Aula004Projeto de Sistemas - Aula004
Projeto de Sistemas - Aula004
Cláudio Amaral
 

Semelhante a Gestão da Aplicação (20)

Sql
SqlSql
Sql
 
Web App Flaws - SQL Injection
Web App Flaws - SQL InjectionWeb App Flaws - SQL Injection
Web App Flaws - SQL Injection
 
SQL Oracle
SQL OracleSQL Oracle
SQL Oracle
 
Banco de Dados.pptx
Banco de Dados.pptxBanco de Dados.pptx
Banco de Dados.pptx
 
Conceitos Basicos em Banco de Dados
Conceitos Basicos em Banco de DadosConceitos Basicos em Banco de Dados
Conceitos Basicos em Banco de Dados
 
Melhorando o desempenho de suas consultas no MySql
Melhorando o desempenho de suas consultas no MySqlMelhorando o desempenho de suas consultas no MySql
Melhorando o desempenho de suas consultas no MySql
 
Modulo-02-Aula-03-conteudo-para-cer.pptx
Modulo-02-Aula-03-conteudo-para-cer.pptxModulo-02-Aula-03-conteudo-para-cer.pptx
Modulo-02-Aula-03-conteudo-para-cer.pptx
 
LabMM4 (T06 - 12/13) - Auto-associações e Introdução ao SQL
LabMM4 (T06 - 12/13) - Auto-associações e Introdução ao SQLLabMM4 (T06 - 12/13) - Auto-associações e Introdução ao SQL
LabMM4 (T06 - 12/13) - Auto-associações e Introdução ao SQL
 
Data WareHOuse
Data WareHOuseData WareHOuse
Data WareHOuse
 
5 bdoo+bdor
5 bdoo+bdor5 bdoo+bdor
5 bdoo+bdor
 
Agbd aula4 sql_ddl
Agbd aula4 sql_ddlAgbd aula4 sql_ddl
Agbd aula4 sql_ddl
 
Slide da aula 04
Slide da aula 04Slide da aula 04
Slide da aula 04
 
2006 - ADONET.ppt
2006 - ADONET.ppt2006 - ADONET.ppt
2006 - ADONET.ppt
 
Arquitetura e sgbd de um banco de dados
Arquitetura e sgbd de um banco de dadosArquitetura e sgbd de um banco de dados
Arquitetura e sgbd de um banco de dados
 
Consultas SQL
Consultas SQLConsultas SQL
Consultas SQL
 
Aula 10 banco de dados
Aula 10   banco de dadosAula 10   banco de dados
Aula 10 banco de dados
 
Base de dados no Excel 1.pdf
Base de dados no Excel 1.pdfBase de dados no Excel 1.pdf
Base de dados no Excel 1.pdf
 
SQL Server ES - Escrevendo queries rápidas (Performance/Query Tuning)
SQL Server ES - Escrevendo queries rápidas (Performance/Query Tuning)SQL Server ES - Escrevendo queries rápidas (Performance/Query Tuning)
SQL Server ES - Escrevendo queries rápidas (Performance/Query Tuning)
 
Aplicativo aula02
Aplicativo aula02Aplicativo aula02
Aplicativo aula02
 
Projeto de Sistemas - Aula004
Projeto de Sistemas - Aula004Projeto de Sistemas - Aula004
Projeto de Sistemas - Aula004
 

Mais de Carlos Pampulim Caldeira

Administração de Bases de Dados - Introdução
Administração de Bases de Dados - IntroduçãoAdministração de Bases de Dados - Introdução
Administração de Bases de Dados - IntroduçãoCarlos Pampulim Caldeira
 
Custo Execução Queries | Oracle | 2015
Custo Execução Queries | Oracle | 2015Custo Execução Queries | Oracle | 2015
Custo Execução Queries | Oracle | 2015
Carlos Pampulim Caldeira
 
Estatísticas | Oracle | 2015
Estatísticas | Oracle | 2015Estatísticas | Oracle | 2015
Estatísticas | Oracle | 2015
Carlos Pampulim Caldeira
 
Revisão do Desenho da Base de Dados | 2015
Revisão do Desenho da Base de Dados | 2015Revisão do Desenho da Base de Dados | 2015
Revisão do Desenho da Base de Dados | 2015
Carlos Pampulim Caldeira
 
Disponibilidade da Base de Dados
Disponibilidade da Base de DadosDisponibilidade da Base de Dados
Disponibilidade da Base de Dados
Carlos Pampulim Caldeira
 
Salvaguarda e Recuperação da Base de Dados | Oracle
Salvaguarda e Recuperação da Base de Dados | OracleSalvaguarda e Recuperação da Base de Dados | Oracle
Salvaguarda e Recuperação da Base de Dados | Oracle
Carlos Pampulim Caldeira
 
Views | Controlo de acesso aos dados
Views | Controlo de acesso aos dadosViews | Controlo de acesso aos dados
Views | Controlo de acesso aos dados
Carlos Pampulim Caldeira
 
SQL e Transações
SQL e TransaçõesSQL e Transações
SQL e Transações
Carlos Pampulim Caldeira
 
DBA | Tabelas de teste
DBA | Tabelas de testeDBA | Tabelas de teste
DBA | Tabelas de teste
Carlos Pampulim Caldeira
 
Google BigQuery
Google BigQueryGoogle BigQuery
Google BigQuery
Carlos Pampulim Caldeira
 
Administração de bases de dados introdução
Administração de bases de dados   introduçãoAdministração de bases de dados   introdução
Administração de bases de dados introdução
Carlos Pampulim Caldeira
 
Ambiente de exploração oracle
Ambiente de exploração oracleAmbiente de exploração oracle
Ambiente de exploração oracle
Carlos Pampulim Caldeira
 
Revisão do Desenho da Base de Dados - Design Review
Revisão do Desenho da Base de Dados - Design ReviewRevisão do Desenho da Base de Dados - Design Review
Revisão do Desenho da Base de Dados - Design ReviewCarlos Pampulim Caldeira
 

Mais de Carlos Pampulim Caldeira (20)

Administração de Bases de Dados - Introdução
Administração de Bases de Dados - IntroduçãoAdministração de Bases de Dados - Introdução
Administração de Bases de Dados - Introdução
 
Custo Execução Queries | Oracle | 2015
Custo Execução Queries | Oracle | 2015Custo Execução Queries | Oracle | 2015
Custo Execução Queries | Oracle | 2015
 
Estatísticas | Oracle | 2015
Estatísticas | Oracle | 2015Estatísticas | Oracle | 2015
Estatísticas | Oracle | 2015
 
Revisão do Desenho da Base de Dados | 2015
Revisão do Desenho da Base de Dados | 2015Revisão do Desenho da Base de Dados | 2015
Revisão do Desenho da Base de Dados | 2015
 
Disponibilidade da Base de Dados
Disponibilidade da Base de DadosDisponibilidade da Base de Dados
Disponibilidade da Base de Dados
 
Salvaguarda e Recuperação da Base de Dados | Oracle
Salvaguarda e Recuperação da Base de Dados | OracleSalvaguarda e Recuperação da Base de Dados | Oracle
Salvaguarda e Recuperação da Base de Dados | Oracle
 
Views | Controlo de acesso aos dados
Views | Controlo de acesso aos dadosViews | Controlo de acesso aos dados
Views | Controlo de acesso aos dados
 
SQL e Transações
SQL e TransaçõesSQL e Transações
SQL e Transações
 
DBA | Tabelas de teste
DBA | Tabelas de testeDBA | Tabelas de teste
DBA | Tabelas de teste
 
Google BigQuery
Google BigQueryGoogle BigQuery
Google BigQuery
 
Administração de bases de dados introdução
Administração de bases de dados   introduçãoAdministração de bases de dados   introdução
Administração de bases de dados introdução
 
Ambiente de exploração oracle
Ambiente de exploração oracleAmbiente de exploração oracle
Ambiente de exploração oracle
 
Oracle | Estatísticas
Oracle | EstatísticasOracle | Estatísticas
Oracle | Estatísticas
 
Custo Execução de Queries
Custo Execução de QueriesCusto Execução de Queries
Custo Execução de Queries
 
User Management
User ManagementUser Management
User Management
 
Database Performance
Database PerformanceDatabase Performance
Database Performance
 
Data Availability
Data AvailabilityData Availability
Data Availability
 
Alterações na Base de Dados
Alterações na Base de DadosAlterações na Base de Dados
Alterações na Base de Dados
 
Revisão do Desenho da Base de Dados - Design Review
Revisão do Desenho da Base de Dados - Design ReviewRevisão do Desenho da Base de Dados - Design Review
Revisão do Desenho da Base de Dados - Design Review
 
Sistema Spares
Sistema SparesSistema Spares
Sistema Spares
 

Último

Acróstico - Reciclar é preciso
Acróstico   -  Reciclar é preciso Acróstico   -  Reciclar é preciso
Acróstico - Reciclar é preciso
Mary Alvarenga
 
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdfAPOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
RenanSilva991968
 
2021-7o-ano-PPt-Oracoes-coordenadas..pptx
2021-7o-ano-PPt-Oracoes-coordenadas..pptx2021-7o-ano-PPt-Oracoes-coordenadas..pptx
2021-7o-ano-PPt-Oracoes-coordenadas..pptx
BarbaraBeatriz15
 
A nossa mini semana 2706 2906 Juliana.pptx
A nossa mini semana 2706 2906 Juliana.pptxA nossa mini semana 2706 2906 Juliana.pptx
A nossa mini semana 2706 2906 Juliana.pptx
juserpa07
 
Atividade - Letra da música "Tem Que Sorrir" - Jorge e Mateus
Atividade - Letra da música "Tem Que Sorrir"  - Jorge e MateusAtividade - Letra da música "Tem Que Sorrir"  - Jorge e Mateus
Atividade - Letra da música "Tem Que Sorrir" - Jorge e Mateus
Mary Alvarenga
 
Eurodeputados Portugueses 2019-2024 (nova atualização)
Eurodeputados Portugueses 2019-2024 (nova atualização)Eurodeputados Portugueses 2019-2024 (nova atualização)
Eurodeputados Portugueses 2019-2024 (nova atualização)
Centro Jacques Delors
 
DeClara n.º 76 MAIO 2024, o jornal digital do Agrupamento de Escolas Clara de...
DeClara n.º 76 MAIO 2024, o jornal digital do Agrupamento de Escolas Clara de...DeClara n.º 76 MAIO 2024, o jornal digital do Agrupamento de Escolas Clara de...
DeClara n.º 76 MAIO 2024, o jornal digital do Agrupamento de Escolas Clara de...
IsabelPereira2010
 
Correção do 1º Simulado Enem 2024 - Mês de Abril.pdf
Correção do 1º Simulado Enem 2024 - Mês de Abril.pdfCorreção do 1º Simulado Enem 2024 - Mês de Abril.pdf
Correção do 1º Simulado Enem 2024 - Mês de Abril.pdf
Edilson431302
 
MÁRTIRES DE UGANDA Convertem-se ao Cristianismo - 1885-1887.pptx
MÁRTIRES DE UGANDA Convertem-se ao Cristianismo - 1885-1887.pptxMÁRTIRES DE UGANDA Convertem-se ao Cristianismo - 1885-1887.pptx
MÁRTIRES DE UGANDA Convertem-se ao Cristianismo - 1885-1887.pptx
Martin M Flynn
 
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptxSlides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
LuizHenriquedeAlmeid6
 
O autismo me ensinou - Letícia Butterfield.pdf
O autismo me ensinou - Letícia Butterfield.pdfO autismo me ensinou - Letícia Butterfield.pdf
O autismo me ensinou - Letícia Butterfield.pdf
Letícia Butterfield
 
Slides Lição 9, Central Gospel, As Bodas Do Cordeiro, 1Tr24.pptx
Slides Lição 9, Central Gospel, As Bodas Do Cordeiro, 1Tr24.pptxSlides Lição 9, Central Gospel, As Bodas Do Cordeiro, 1Tr24.pptx
Slides Lição 9, Central Gospel, As Bodas Do Cordeiro, 1Tr24.pptx
LuizHenriquedeAlmeid6
 
LIÇÃO 9 - ORDENANÇAS PARA UMA VIDA DE SANTIFICAÇÃO.pptx
LIÇÃO 9 - ORDENANÇAS PARA UMA VIDA DE SANTIFICAÇÃO.pptxLIÇÃO 9 - ORDENANÇAS PARA UMA VIDA DE SANTIFICAÇÃO.pptx
LIÇÃO 9 - ORDENANÇAS PARA UMA VIDA DE SANTIFICAÇÃO.pptx
WelidaFreitas1
 
BULLYING NÃO É AMOR.pdf LIVRO PARA TRABALHAR COM ALUNOS ATRAVÉS DE PROJETOS...
BULLYING NÃO É AMOR.pdf LIVRO PARA TRABALHAR COM ALUNOS ATRAVÉS DE PROJETOS...BULLYING NÃO É AMOR.pdf LIVRO PARA TRABALHAR COM ALUNOS ATRAVÉS DE PROJETOS...
BULLYING NÃO É AMOR.pdf LIVRO PARA TRABALHAR COM ALUNOS ATRAVÉS DE PROJETOS...
Escola Municipal Jesus Cristo
 
Química orgânica e as funções organicas.pptx
Química orgânica e as funções organicas.pptxQuímica orgânica e as funções organicas.pptx
Química orgânica e as funções organicas.pptx
KeilianeOliveira3
 
História Do Assaré - Prof. Francisco Leite
História Do Assaré - Prof. Francisco LeiteHistória Do Assaré - Prof. Francisco Leite
História Do Assaré - Prof. Francisco Leite
profesfrancleite
 
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdfAPOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
RenanSilva991968
 
Arundhati Roy - O Deus das Pequenas Coisas - ÍNDIA.pdf
Arundhati Roy - O Deus das Pequenas Coisas - ÍNDIA.pdfArundhati Roy - O Deus das Pequenas Coisas - ÍNDIA.pdf
Arundhati Roy - O Deus das Pequenas Coisas - ÍNDIA.pdf
Ana Da Silva Ponce
 
Aproveitando as ferramentas do Tableau para criatividade e produtividade
Aproveitando as ferramentas do Tableau para criatividade e produtividadeAproveitando as ferramentas do Tableau para criatividade e produtividade
Aproveitando as ferramentas do Tableau para criatividade e produtividade
Ligia Galvão
 
Slides Lição 10, CPAD, Desenvolvendo uma Consciência de Santidade, 2Tr24.pptx
Slides Lição 10, CPAD, Desenvolvendo uma Consciência de Santidade, 2Tr24.pptxSlides Lição 10, CPAD, Desenvolvendo uma Consciência de Santidade, 2Tr24.pptx
Slides Lição 10, CPAD, Desenvolvendo uma Consciência de Santidade, 2Tr24.pptx
LuizHenriquedeAlmeid6
 

Último (20)

Acróstico - Reciclar é preciso
Acróstico   -  Reciclar é preciso Acróstico   -  Reciclar é preciso
Acróstico - Reciclar é preciso
 
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdfAPOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
 
2021-7o-ano-PPt-Oracoes-coordenadas..pptx
2021-7o-ano-PPt-Oracoes-coordenadas..pptx2021-7o-ano-PPt-Oracoes-coordenadas..pptx
2021-7o-ano-PPt-Oracoes-coordenadas..pptx
 
A nossa mini semana 2706 2906 Juliana.pptx
A nossa mini semana 2706 2906 Juliana.pptxA nossa mini semana 2706 2906 Juliana.pptx
A nossa mini semana 2706 2906 Juliana.pptx
 
Atividade - Letra da música "Tem Que Sorrir" - Jorge e Mateus
Atividade - Letra da música "Tem Que Sorrir"  - Jorge e MateusAtividade - Letra da música "Tem Que Sorrir"  - Jorge e Mateus
Atividade - Letra da música "Tem Que Sorrir" - Jorge e Mateus
 
Eurodeputados Portugueses 2019-2024 (nova atualização)
Eurodeputados Portugueses 2019-2024 (nova atualização)Eurodeputados Portugueses 2019-2024 (nova atualização)
Eurodeputados Portugueses 2019-2024 (nova atualização)
 
DeClara n.º 76 MAIO 2024, o jornal digital do Agrupamento de Escolas Clara de...
DeClara n.º 76 MAIO 2024, o jornal digital do Agrupamento de Escolas Clara de...DeClara n.º 76 MAIO 2024, o jornal digital do Agrupamento de Escolas Clara de...
DeClara n.º 76 MAIO 2024, o jornal digital do Agrupamento de Escolas Clara de...
 
Correção do 1º Simulado Enem 2024 - Mês de Abril.pdf
Correção do 1º Simulado Enem 2024 - Mês de Abril.pdfCorreção do 1º Simulado Enem 2024 - Mês de Abril.pdf
Correção do 1º Simulado Enem 2024 - Mês de Abril.pdf
 
MÁRTIRES DE UGANDA Convertem-se ao Cristianismo - 1885-1887.pptx
MÁRTIRES DE UGANDA Convertem-se ao Cristianismo - 1885-1887.pptxMÁRTIRES DE UGANDA Convertem-se ao Cristianismo - 1885-1887.pptx
MÁRTIRES DE UGANDA Convertem-se ao Cristianismo - 1885-1887.pptx
 
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptxSlides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
Slides Lição 9, Betel, Ordenança para uma vida de santificação, 2Tr24.pptx
 
O autismo me ensinou - Letícia Butterfield.pdf
O autismo me ensinou - Letícia Butterfield.pdfO autismo me ensinou - Letícia Butterfield.pdf
O autismo me ensinou - Letícia Butterfield.pdf
 
Slides Lição 9, Central Gospel, As Bodas Do Cordeiro, 1Tr24.pptx
Slides Lição 9, Central Gospel, As Bodas Do Cordeiro, 1Tr24.pptxSlides Lição 9, Central Gospel, As Bodas Do Cordeiro, 1Tr24.pptx
Slides Lição 9, Central Gospel, As Bodas Do Cordeiro, 1Tr24.pptx
 
LIÇÃO 9 - ORDENANÇAS PARA UMA VIDA DE SANTIFICAÇÃO.pptx
LIÇÃO 9 - ORDENANÇAS PARA UMA VIDA DE SANTIFICAÇÃO.pptxLIÇÃO 9 - ORDENANÇAS PARA UMA VIDA DE SANTIFICAÇÃO.pptx
LIÇÃO 9 - ORDENANÇAS PARA UMA VIDA DE SANTIFICAÇÃO.pptx
 
BULLYING NÃO É AMOR.pdf LIVRO PARA TRABALHAR COM ALUNOS ATRAVÉS DE PROJETOS...
BULLYING NÃO É AMOR.pdf LIVRO PARA TRABALHAR COM ALUNOS ATRAVÉS DE PROJETOS...BULLYING NÃO É AMOR.pdf LIVRO PARA TRABALHAR COM ALUNOS ATRAVÉS DE PROJETOS...
BULLYING NÃO É AMOR.pdf LIVRO PARA TRABALHAR COM ALUNOS ATRAVÉS DE PROJETOS...
 
Química orgânica e as funções organicas.pptx
Química orgânica e as funções organicas.pptxQuímica orgânica e as funções organicas.pptx
Química orgânica e as funções organicas.pptx
 
História Do Assaré - Prof. Francisco Leite
História Do Assaré - Prof. Francisco LeiteHistória Do Assaré - Prof. Francisco Leite
História Do Assaré - Prof. Francisco Leite
 
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdfAPOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
APOSTILA DE TEXTOS CURTOS E INTERPRETAÇÃO.pdf
 
Arundhati Roy - O Deus das Pequenas Coisas - ÍNDIA.pdf
Arundhati Roy - O Deus das Pequenas Coisas - ÍNDIA.pdfArundhati Roy - O Deus das Pequenas Coisas - ÍNDIA.pdf
Arundhati Roy - O Deus das Pequenas Coisas - ÍNDIA.pdf
 
Aproveitando as ferramentas do Tableau para criatividade e produtividade
Aproveitando as ferramentas do Tableau para criatividade e produtividadeAproveitando as ferramentas do Tableau para criatividade e produtividade
Aproveitando as ferramentas do Tableau para criatividade e produtividade
 
Slides Lição 10, CPAD, Desenvolvendo uma Consciência de Santidade, 2Tr24.pptx
Slides Lição 10, CPAD, Desenvolvendo uma Consciência de Santidade, 2Tr24.pptxSlides Lição 10, CPAD, Desenvolvendo uma Consciência de Santidade, 2Tr24.pptx
Slides Lição 10, CPAD, Desenvolvendo uma Consciência de Santidade, 2Tr24.pptx
 

Gestão da Aplicação

  • 1. Administração de Bases de Dados Afinação da Aplicação (Desempenho da Aplicação) Carlos Pampulim Caldeira http://www.di.uevora.pt/~ccaldeira http://makingdatawork.blogspot.pt
  • 2. Optimizador Relacional • SQL, standard para acesso à informação • Alto nível de abstracção • Quais são os dados pretendidos • Não especifica como os ir buscar • Access paths, caminhos de acesso aos dados • Forma desestruturada de escrita • Operações a nível de conjuntos de dados • Permite a adaptação do SQL ao ambiente dinâmico da base de dados: • Tabelas crescem / diminuem • Índices adicionados / removidos • Base dados fragmentada / desfragmentada
  • 4. Optimizador Relacional Aplicações estão isoladas: • Estrutura (independência Lógica) • Forma armazenamento (independência Física)
  • 5. Index Selectivity Taxa de duplicação numa coluna indexada. Selectividade ideal é 1, apenas alcansável em índices únicos. Is = total valores distintos / número de linhas da tabela Ex. Boa selectividade: 88 000 /100 000 = 0.88 Is < 0,1
  • 6. Medição: Index Selectivity SELECT COUNT (DISTINCT “Disciplina”) “Valores distintos” FROM disciplina; Valores distintos --------------- 5 SELECT COUNT(*) “Nº Total Linhas” FROM disciplina; Nº Total Linhas ----------------- 14 Is = 5 / 14 = 0,35(714…)
  • 7. Medição: Index Selectivity Cardinalidade [Código Postal] Quantos distintos haverá em PT? Valores distintos --------------- 1000? Se tiver uma tabela com registo de 10 milhões de licenças de condução? Selectividade = 1000 / 10 000 000 Is = 0,0001%
  • 8. Medição: Index Selectivity Ajuda a decidir entre: • B*Tree • Bitmap 1. Se SELECTIVIDADE > 4% é B*Tree 2. Se SELECTIVIDADE < 4% é Bitmap Os índices, com uma selectividade inferior a 0,1%, devem ser do tipo Bitmap pois caso contrário nem serão levados em consideração pelo optimizador relacional.
  • 9. Medição: Index Selectivity Auditoria aos índices em uso (Oracle) SELECT INDEX_NAME "Nome", DISTINCT_KEYS / NUM_ROWS * 100 "SELECTIVITY %", NUM_ROWS, DISTINCT_KEYS "DISTINCT", LEAF_BLOCKS, CLUSTERING_FACTOR, BLEVEL "LEVEL", AVG_LEAF_BLOCKS_PER_KEY "ALFBPKEY" FROM DBA_INDEXES WHERE DISTINCT_KEYS / NUM_ROWS < .1 AND NUM_ROWS > 0 ORDER BY "SELECTIVITY %" DESC;
  • 10. Index Density Percentagem de duplicados numa coluna indexada Supor tabela com 2 milhões linhas: 1 / NUM_DISCTINCT (not null) 1 / 2 000 000 = 0,0000005 1 / 2 = 0,5
  • 11. Joins Dois métodos de join: • Join em ciclo (nested-loop join) uma linha é identificada na tabela outer e em seguida a tabela inner é varrida à procura de uma ligação e, assim sucessivamente até à última ocorrência na tabela outer. • Join combinado (merge-scan join) as linhas das tabelas são ordenadas e depois cada uma das tabelas é lida sequencialmente e as colunas coincidentes são assinaladas e as linhas devolvidas. Notas: O join combinado deve ser o escolhido quando a tabela joined um número muito grande linhas ou quando há muitas linhas que satisfazem a condição, ou ainda quando os predicados do join não são muito selectivos.
  • 12. Joins Nº de tabelas na junção Nº de possíveis (ordens) de junções 1 1 2 2 3 6 4 24 5 120 6 720 7 5040 8 40320 9 363880 10 3628800 11 39916800 12 479001600 13 6227020800 14 87178291200 15 1307674368000 16 20922789888000
  • 13. Caminho de acesso aos dados Varrimento das tabelas: • não existe(m) índice(s) ou as condições [WHERE] excluem o(s) índice(s) • grande número de linhas que satisfazem as condições • índices com baixo clustering (index page cluster ratio) • a tabela é demasiado pequena (poucas linhas)
  • 14. Caminho de acesso aos dados Acesso directo pelo índice (direct index lookup) SELECT número, apelido, nome FROM empregado WHERE cargo = “Gerente” AND função = 1 AND departamento = “D01” ; cargo função departamento
  • 15. Caminho de acesso aos dados Varrimento do índice: Varrimento por comparação exacta (matching index scan) SELECT número, apelido, nome FROM empregado WHERE cargo = “Gerente” AND função = 1 AND departamento = “D01” ;
  • 16. Caminho de acesso aos dados Varrimento do índice: Varrimento por comparação exacta (matching index scan) Pág Raíz Pág Pág Nonleaf Nonleaf Pág Pág Pág. Nonleaf Nonleaf Nonleaf Folha Folha Folha Folha Folha
  • 17. Caminho de acesso aos dados Varrimento do índice: Varrimento pela posição relativa (nonmatching index scan) SELECT número, apelido, nome FROM empregado Não há predicado de WHERE função = 1 entrada no índice, AND departamento = “D01” ; logo a estrutura do índice não pode ser utilizada.
  • 18. Caminho de acesso aos dados Varrimento do índice: Varrimento pela posição relativa (nonmatching index scan) Pág Raíz Pág Pág Nonleaf Nonleaf Pág Pág Pág. Nonleaf Nonleaf Nonleaf Folha Folha Folha Folha Folha
  • 19. Caminho de acesso aos dados Varrimento do índice: • varrimento do índice > varrimento da tabela
  • 20. Caminho de acesso aos dados Clustered ou unclustered: • Acesso associado ao índice: lê pág. dados uma única • Acesso desassociado ao índice: múltiplas leituras mesma pág. de dados A CP não é uma boa opção para ser um índice clustered dado que o acesso aos seus valores é aleatório enquanto que o clustered favorece o acesso sequencial. Os índices clustered ao lerem as páginas das folhas nunca lêm a mesma duas vezes. Já os índices unclustered fazem múltiplos pedidos pois os dados estão espalhados pela tabela.
  • 21. Caminho de acesso aos dados Index screening: SELECT número, apelido FROM empregado WHERE cargo = “Gerente” matching AND função = 1 AND salário > 40000 ; pos. relativo cargo função departamento salário
  • 22. Caminho de acesso aos dados Acesso restrito aos índices (index covering) SELECT número, apelido FROM empregado WHERE cargo = “Gerente” AND função = 1 AND salário > 40000 ; cargo função departamento salário apelido número
  • 23. Caminho de acesso aos dados Acesso restrito aos índices (index covering) • Não há I/O adicional à tabela • “Encorajar” o acesso index-only • Sobrecarga de colunas indexadas
  • 24. Caminho de acesso aos dados Acesso múltiplo (multi-index access): SELECT número, apelido FROM empregado WHERE cargo = “Gerente” AND função = 1 ; cargo função
  • 25. Caminho de acesso aos dados Acesso múltiplo (multi-index access): Por vezes pode minimizar-se o número de índices criados promovendo múltiplos índices simples, i.e., com uma única coluna, em vez de muitas colunas compostas indexadas. A decisão de aplicar uns e/ou outros depende da eficiência do SGBDR na utilização das diversas formas de indexação. Nota: AND; OR
  • 26. Ordenação de dados A utilização de índices para evitar SORT's: • Distinct • Union • Group by • Order by
  • 27. Desprezo pelo índice O optimizador não utiliza o índice: • Sem predicados • Join com várias/muitas tabelas • Estatísticas desactualizadas
  • 28. Views: acesso Dois métodos: • View merging • View materialization O view merging é o método mais eficiente. O SQL aplicado no DDL da view é aglutinado (merged) com o SQL que refere a view. O SQL resultante é então utilizado para determinar o caminho de acesso aos dados. Quando não é possível combinar o SQL da view com o SQL que acede à view é criada uma tabela temporária que armazena os resultados da view. O SQL que acede à view é depois aplicado aos resultados guardados na tabela temporária. Daí a relativa ineficiência da view materialization.
  • 29. Re(escrita) de queries Alguns optimizadores: WHERE coluna1 >= 1 AND coluna1 <= 100 , podem transformar esta cláusula nesta: WHERE coluna1 BETWEEN 1 AND 100
  • 30. Re(escrita) de queries transitividade do predicado (predicate transitive closure) SELECT d."Nome do Departamento", e."Nome", e."Número de Funcionário" FROM empregado e, departamento d WHERE e."Código do Departamento" = d."Código do Departamento" AND d."Código do Departamento" = "DO59"; SELECT d."Nome do Departamento", e."Nome", e."Número de Funcionário" FROM empregado e, departamento d WHERE e."Código do Departamento" = d."Código do Departamento" AND e."Código do Departamento" = "DO59";
  • 31. Optimização pelo custo O optimizador relacional é o subsistema de um SGBDR que gera planos de execução. • Efeito da modificação dos parâmetros de configuração (Oracle): o cost-based
  • 32. Análise do caminho de acesso SQL Server: • ShowPlan Oracle: • Explain set timing on; (SQL*Plus)
  • 33. SQL: regras de Mullins Codificação do SQL para a eficiência: Regra 1: Depende... Regra 2: Posição na query da cláusula mais restritiva e prosseguindo até à 11ª regra. Mullins, C. 2002. Chapter 12. Application Performance. Database Administration: The Complete Guide to Practices and Procedures. Addison Wesley.
  • 34. Optimização do SQL Video [“esclarecedor”] sobre SQL Optimization em Oracle: ver aqui.
  • 35. Afinação da Aplicação - Oracle SQL Analyse (Oracle): ver aqui.

Notas do Editor

  1. nested-loop: uma linha é identificada na tabelaouter e em seguida a tabela inner é varrida à procura de uma ligação e, assim sucessivamente até à última ocorrência na tabela outer.merge-scan: as linhas das tabelas são ordenadas e depois cada uma das tabelas é lida sequencialmente e as colunas coincidentes são assinaladas e as linhas devolvidas.A merge scan join is preferable when the joined table has a large number of rows or qualifyingrows, and the join predicates are not very selective.Create suitable indexes to avoid the sort operation and increase the speed of the merge scan join