Pular para o conteúdo
Visualizando 3 posts - 1 até 3 (de 3 do total)
  • Autor
    Posts
  • #101176
    mpungan
    Participante

      Pessoal, será que alguém poderia da uma luz nesse resultado de plano de execução que rodei no SQL Developer. Preciso ajustar essa consulta.

      2- Restructure SQL finding (see plan 2 in explain plans section)
      —————————————————————-
      O predicado “SIU”.”FUN_SIU_DESC_CURSO”(“V”.”ID_PES_VINCULO”,’C’)=’4621′
      usado no ID de linha 3 do plano de execução contém uma expressão na coluna indexada “ID_PES_VINCULO”. Essa expressão impede o otimizador de selecionar índices na tabela “SIU”.”SIU_PESSOA_VINCULO”.

      Recommendation
      ————–
      – Reescreva o predicado em um formato equivalente para tirar proveito de índices. Como alternativa, crie um índice baseado na expressão.

      Rationale
      ———
      O otimizador não pode usar um índice quando o predicado é uma condição de desigualdade ou quando há uma expressão ou uma conversão de tipo de dados implícita na coluna indexada.

      Segue a consulta abaixo:
      SELECT P.CD_PESSOA, P.NR_DV, P.TP_SEXO, P.DT_NASCIMENTO, P.NM_NOME, P.NR_CPF, P.ST_CPF_PROPRIO, P.NM_NOME_REDUZIDO, P.NM_PESQUISA, P.ST_FALECIDO, P.DT_EXCLUSAO, P.CD_IP, P.CD_OPERADOR, P.ID_PESSOA, P.ID_ESTADO_CIVIL, P.ID_RACA, P.ID_RELIGIAO, P.ID_SITUACAO_ESTRANGEIRO, P.SG_NACIONALIDADE, P.SG_UF_NASCIMENTO, P.SG_PAIS_NASCIMENTO, P.TP_GRUPO_SANGUINEO, P.ST_DOADOR, P.TX_CIDADE_NASCIMENTO, P.NM_PAI, P.NM_MAE
      FROM SIU.SIU_PESSOA P WHERE EXISTS (SELECT V.ID_PESSOA
      FROM SIU.SIU_PESSOA_VINCULO V
      WHERE V.ID_PESSOA = P.ID_PESSOA
      AND SIU.FUN_SIU_DESC_CURSO(V.ID_PES_VINCULO,’C’) = ‘4621’)
      ORDER BY P.NM_NOME

      #101179
      rman
      Participante

        @mpungan

        Resumindo, o predicado possui uma função, e provavelmente o índice da coluna V.ID_PES_VINCULO foi criado de forma normal, para que o índice seja utilizado, utilize índice baseado em função.

        Exemplo:

        CREATE INDEX NOME_INDICE_BASEADO_FUNCAO ON SIU_PESSOA_VINCULO (FUN_SIU_DESC_CURSO(ID_PES_VINCULO,'C') );

        #101188
        mpungan
        Participante

          Valeu…
          Obrigado pela dica.

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