Geração de Temp Table

Discussão em 'Progress 4GL' iniciado por andreluisbrandao, Julho 4, 2011.

  1. andreluisbrandao

    andreluisbrandao Membro Participativo

    Senhores,

    Estou gerando uma tabela temporaria a partir da tabela It-Doc-Fisc, que é uma tabela que contem muitos registros, porem estou achando a operação muito lenta. Estou utilizando a seguinte sintaxe :

    for each it-doc-fisc use-index ch-ipi-cod
    where it-doc-fisc.cod-estabel = c-estabelecimento:screen-value and
    it-doc-fisc.dt-docto >= c-periodo1 and
    it-doc-fisc.dt-docto <= c-periodo2:

    CREATE tt-it-doc-fisc.
    BUFFER-COPY it-doc-fisc TO tt-it-doc-fisc NO-ERROR.
    end.

    Gostaria de saber qual seria a melhor sintaxe para que a montagem da tem-table ficasse mais rapida.

    Obrigado.
  2. zanirato

    zanirato Sem Pontuação

    Andre, bom dia!
    Nesse caso você tem duas opções para melhorar a performance.
    A primeira é trocar o indíce utilizado para "itmdctfs-07", pelo campos filtrados seria o recomendável.
    A segundo opção seria incluir nessa rotina o item e você gravaria a temp-table por item.

    Também é possível incluir o campos necessário para satisfazer o indice que você colocou.
    Faça pequenos testes que você consegui entender qual indice utilizado consome o menor tempo de processamento.

    Abraço
  3. Rogerio

    Rogerio Moderator Moderador Equipe de Suporte

    Tente colocar o FOR EACH da seguinte forma:

    Código:
    for each it-doc-fisc use-index ch-ipi-cod
    where and
    it-doc-fisc.dt-docto >= c-periodo1 and
    it-doc-fisc.dt-docto <= c-periodo2 and
    it-doc-fisc.tipo-nat >= 0 and
    it-doc-fisc.cod-estabel = c-estabelecimento:screen-value :
    
    Depois posta o resultado!!!
  4. andreluisbrandao

    andreluisbrandao Membro Participativo

    Valeu Rogerio, Ficou bem mais rapido.

Compartilhe esta Página