Pular para o conteúdo
Visualizando 4 posts - 1 até 4 (de 4 do total)
  • Autor
    Posts
  • #97677
    augustoca
    Participante

      E aí Pessoal,

      Com relação a custo.

      Select de linha ou Other Join?

      Select
      (SELECT nome FROM PESSOA WHERE CODIGOPESSOA = 1)
      from fatura

      ou

      SELECT PESSOA.NOME
      FROM PESSOA, FATURA
      WHERE PESSOA.CODIGOPESSOA(+) = FATURA.CODIGOPESSOA

      [/quote]

      #97686
      Avatar photoLeonardo Litz
      Participante

        Olá augustoca

        Creio que o primeiro seja mais eficiente!

        Vlw
        Leonardo Litz

        #97690
        rwarstat
        Participante

          Bom, o primeiro código não está igual ao segundo, em razão do select de dentro não ter nenhuma relação com o select de fora. Da maneira como está certamente o custo será maior.
          O correto seria

          SELECT (SELECT nome
          FROM PESSOA
          WHERE pessoa.codigopessoa = fatura.codigopessoa)
          FROM fatura

          Após fazer essa correção, para saber o custo de cada um dos select´s é necessário executar o Explain Plan. Não sei como executar via SQLPLUS, mas nas ferramentas de desenvolvimento existem formas bem simples de se fazer isso.

          Abraço,
          Roberto

          #97693
          Sousa04
          Participante

            Augusto faz o explain plan das queries e joga o resultado aqui

            explain plan for
            Select
            (SELECT nome FROM PESSOA WHERE CODIGOPESSOA = 1)
            from fatura ;

            depois rola o SELECT * FROM TABLE(dbms_xplan.display)

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