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.
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
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!!!