Carregando ...
Desculpe, ocorreu um erro ao carregar o conteúdo.

14530Re: [cflp] LENTIDAO INNER JOIN COM FK

Expandir mensagens
  • Alison D. Vilcenski
    24 de out de 2012
      Bom dia Gutierres,

      Precisa verificar o PLAN do seu Select, mas provavelmente só está faltando um índice ID_PROD, ID_EMP na sua tabela EQ_PROD_QTDE. Crie o índice e faça um novo teste.

      Abraço,
      Alison



      ----- Original Message -----
      From: gutierres_santana
      To: cflp_suporte@...
      Sent: Wednesday, October 24, 2012 11:40 AM
      Subject: [cflp] LENTIDAO INNER JOIN COM FK



      Ola amigos preciso de uma ajuda

      tenho uma base de dados com 38189 Registros porem faço um select ela demora 28s 64ms já descobri que é por causa de um inner

      Assim fica lento
      JOIN EQ_PROD_QTDE PQ ON PQ.ID_PROD = P.ID_PROD AND PQ.id_emp = :ID_EMP

      Assim fica rápido sem o And
      JOIN EQ_PROD_QTDE PQ ON PQ.ID_PROD = P.ID_PROD

      este AND PQ.id_emp = :ID_EMP é um FK

      como resolvo este problema

      Obrigado a todos

      Select Completa

      SELECT P.ID_PROD,
      P.DESCRICAO,
      PD.DESCRICAO AS DEPARTAMENTO,
      PC.VR_VENDA_ATUAL AS VR_VENDA_ATUAL,
      P.CD_AUXILIAR AS CD_AUXILIAR,

      (select cast(list(ean13) as varchar(30)) from eq_prod_ean where id_prod = p.id_prod) as CD_EAN,

      NC.CODIGO AS CD_NCM,
      COALESCE(PQ.QTDE,0) AS QTDE,

      (select coalesce(sum(qtde),0) from eq_prod_qtde where id_prod = p.id_prod) as qtde_geral,

      PL.RAZAO AS DS_PES_LAB,
      PF.RAZAO AS DS_PES_FOR,
      FG.DESCRICAO AS DS_GRADE_TRIB,
      P.BALANCA AS DS_BALANCA ,
      TS.DESCRICAO AS DS_TIPO_SITUACAO
      FROM ((((((EQ_PROD P
      INNER JOIN EQ_PROD_COM PC ON PC.ID_PROD = P.ID_PROD)
      INNER JOIN EQ_DPTO PD ON PD.ID_DPTO = P.ID_DPTO_D)
      INNER JOIN TB_NCM NC ON NC.ID_NCM = P.ID_NCM)
      INNER JOIN EQ_PROD_QTDE PQ ON PQ.ID_PROD = P.ID_PROD AND PQ.id_emp = :ID_EMP)
      LEFT JOIN FN_PES PL ON PL.ID_PES = P.ID_PES_LAB)
      LEFT JOIN FN_PES PF ON PF.ID_PES = P.ID_PES_FOR)
      LEFT JOIN FS_GRADE_TRIB FG ON FG.ID_GRADE_TRIB = PC.ID_GRADE_TRIB
      INNER JOIN TB_TIPO_SITUACAO TS ON TS.ID_TIPO_SITUACAO = PC.ID_TIPO_SITUACAO
      WHERE PC.ID_EMP = :ID_EMP
      ORDER BY 2





      [As partes desta mensagem que não continham texto foram removidas]
    • Mostrar todas as 5 mensagens neste tópico