Pular para o conteúdo
  • Este tópico contém 3 respostas, 2 vozes e foi atualizado pela última vez 10 anos, 5 meses atrás por Avatar de Fábio PradoFábio Prado.
Visualizando 4 posts - 1 até 4 (de 4 do total)
  • Autor
    Posts
  • #106703
    Avatar de Felipe da RosaFelipe da Rosa
    Participante

      Olá,

      Qual a ordem correta das colunas para eu utiliza-las na clausula where, imaginando-se uma chave composta, e imaginando-se também mais de uma tabela no join?

      As colunas devem ser comparadas na ordem que estão na tabela?

      #106704
      Avatar de Fábio PradoFábio Prado
      Participante

        Felipe,

        No Oracle existem 2 tipos de otimizadores: RBO e CBO. No RBO a ordem das colunas fazia diferença, no CBO não faz mais, ou seja, no CBO a ordem das colunas não altera nada no plano de execução de uma instrução SQL. O CBO existe desde o Oracle 7 e nas versões atuais somente ele é utilizado, ok?

        Obs.: Esse é um dos mitos que eu esclareço nos meus treinamentos de SQL Tuning.

        []s

        #106707
        Avatar de Felipe da RosaFelipe da Rosa
        Participante

          Olá Fábio.

          E qunado algumas colunas nas comparações possuem indices e outras não.
          Esta ordem também não influencia?

          #106709
          Avatar de Fábio PradoFábio Prado
          Participante

            Felipe,

            Em qualquer lugar do SQL a ordem das colunas não irá alterar o seu plano de execução. Em alguns hints, a ordem poderá afetá-lo, mas não é o seu caso, pois nem hints vc parece estar utilizando, ok?

            Aprenda a gerar e analisar um plano de execução (ver artigo Analisando o Plano de Execução para tunar instruções SQL) que você verá mais claramente o que eu estou falando!

            []s

          Visualizando 4 posts - 1 até 4 (de 4 do total)
          • Você deve fazer login para responder a este tópico.
          plugins premium WordPress