SQL> set stats on;

SQL> select count(ID_ITEM) from DECLARACAO DECL  inner join CADASTRO CAD on (CAD.ID_DECLARACAO=DECL.ID_DECLARACAO)     inner join NOTA_FISCAL NF on (NF.ID_CADASTRO=CAD.ID_CADASTRO) inner join ITEM_NOTA INF on (INF.ID_NF=NF.ID_NF) where DECL.ID_ARQUIVO=1;

       COUNT
============

     1151043

Current memory = 775356
Delta memory = 0
Max memory = 850664
Elapsed time= 13.24 sec
Cpu = 0.00 sec
Buffers = 2048
Reads = 38594
Writes = 0
Fetches = 6753783

SQL>
 
SQL> OUTPUT /home/afelipe/temp/output.out;

file: query_atual.sql:
select * from DECLARACAO DECL  inner join CADASTRO CAD on (CAD.ID_DECLARACAO=DECL.ID_DECLARACAO)     inner join NOTA_FISCAL NF on (NF.ID_CADASTRO=CAD.ID_CADASTRO) inner join ITEM_NOTA INF on (INF.ID_NF=NF.ID_NF) where DECL.ID_ARQUIVO=1

[afelipe@ afelipe]$ date && /opt/firebird/bin/isql -input /home/afelipe/temp/lixo3/query_atual.sql -output /home/afelipe/temp/output.out -USER sysdba -PASSWORD xxxxx  /opt/firebird/bddnf.fdb && date
Seg Abr 24 11:24:49 BRSV 2006
Seg Abr 24 11:30:03 BRSV 2006
[afelipe@ afelipe]$

[afelipe@ afelipe]$ date && /opt/firebird/bin/isql -input /home/afelipe/temp/lixo3/query_atual.sql -output /dev/null -USER sysdba -PASSWORD xxxxx  /opt/firebird/bddnf.fdb && date
Seg Abr 24 11:31:29 BRSV 2006
Seg Abr 24 11:34:37 BRSV 2006
[afelipe@ afelipe]$


file: query_atual.sql:
update NOTA_FISCAL  set VA_TOTAL_ITENSDNF = (select sum(ITEM_NOTA.VA_TOTAL) from ITEM_NOTA where ITEM_NOTA.ID_NF = NOTA_FISCAL.ID_NF)  where exists (select CAD.ID_CADASTRO from DECLARACAO DE, CADASTRO CAD where DE.ID_ARQUIVO in (10) and CAD.ID_DECLARACAO = DE.ID_DECLARACAO  and CAD.ID_CADASTRO = NOTA_FISCAL.ID_CADASTRO  ) and (select sum(ITEM_NOTA.VA_TOTAL) from ITEM_NOTA where ITEM_NOTA.ID_NF = NOTA_FISCAL.ID_NF) < 999999999999;

[afelipe@ afelipe]$ date && /opt/firebird/bin/isql -input /home/afelipe/temp/lixo3/query_atual.sql -output /dev/null -USER sysdba -PASSWORD eLEJB4VH  /opt/firebird/bddnf.fdb && date
Seg Abr 24 11:43:47 BRSV 2006
Seg Abr 24 11:45:44 BRSV 2006
[afelipe@ afelipe]$




select INF.* from ITEM_NOTA INF inner join NOTA_FISCAL NF on (NF.ID_NF=INF.ID_NF) inner join CADASTRO CAD on  (CAD.ID_CADASTRO=NF.ID_CADASTRO) inner join DECLARACAO DE on (DE.ID_DECLARACAO=CAD.ID_DECLARACAO) where DE.ID_ARQUIVO=3;
Current memory = 931444
Delta memory = 0
Max memory = 994168
Elapsed time= 0.15 sec
Cpu = 0.00 sec
Buffers = 2048
Reads = 0
Writes = 0
Fetches = 109871

SQL>



SQL> update NOTA_FISCAL  set VA_TOTAL_ITENSDNF = (select sum(ITEM_NOTA.VA_TOTAL) from ITEM_NOTA where ITEM_NOTA.ID_NF = NOTA_FISCAL.ID_NF)  where ID_NF in (select NF2.ID_NF from DECLARACAO DE inner join CADASTRO CAD on (CAD.ID_DECLARACAO=DE.ID_DECLARACAO) inner join NOTA_FISCAL  NF2 on (NF2.ID_CADASTRO=CAD.ID_CADASTRO) where DE.ID_ARQUIVO in (1) );
Current memory = 1808316
Delta memory = 190660
Max memory = 174682264
Elapsed time= 91.80 sec
Cpu = 0.00 sec
Buffers = 2048
Reads = 50103
Writes = 156621
Fetches = 42566905

SQL>
SQL> set stats on;
SQL> select count(distinct NF.ID_NF ) as contagem, DE.AM_REFERENCIA as campo from DECLARACAO DE  inner join CADASTRO CAD on (CAD.ID_DECLARACAO=DE.ID_DECLARACAO) inner join NOTA_FISCAL NF on (NF.ID_CADASTRO=CAD.ID_CADASTRO) inner join EMPRESA EMP on (EMP.ID_EMPRESA=DE.ID_EMPRESA) inner join ARQUIVO_PROCESSADO ARQ on (ARQ.ID_ARQUIVO=DE.ID_ARQUIVO) group by DE.AM_REFERENCIA order by DE.AM_REFERENCIA;

    CONTAGEM        CAMPO
============ ============

           2       200304
           1       200305
         554       200409
         604       200410
        3295       200411
        1285       200412
        1896       200501
        2102       200502
        2210       200503
        1744       200504
       12636       200505
      731122       200506
      718015       200507
          38       200508

Current memory = 826712
Delta memory = 271260
Max memory = 826712
Elapsed time= 9.69 sec
Cpu = 0.00 sec
Buffers = 2048
Reads = 32644
Writes = 0
Fetches = 3247784

SQL>
SQL> update NOTA_FISCAL set VA_TOTAL_ITENSDNF = (select sum(ITEM_NOTA.VA_TOTAL) from ITEM_NOTA  where ITEM_NOTA.ID_NF = NOTA_FISCAL.ID_NF) where NOTA_FISCAL.ID_CADASTRO  in (select CAD.ID_CADASTRO from DECLARACAO DE inner join CADASTRO CAD on (CAD.ID_DECLARACAO=DE.ID_DECLARACAO) where DE.ID_ARQUIVO in (10)  )  and (select sum(ITEM_NOTA.VA_TOTAL) from ITEM_NOTA  where  ITEM_NOTA.ID_NF = NOTA_FISCAL.ID_NF) < 999999999999;
Current memory = 760488
Delta memory = 0
Max memory = 918124
Elapsed time= 74.36 sec
Cpu = 0.00 sec
Buffers = 2048
Reads = 63894
Writes = 0
Fetches = 28367838

SQL>


file sql_atual.sql:
select DE.ID_DECLARACAO, PROD.ID_PRODUTO_OFICIAL, NF.CO_CNPJ_CPF_DESTINATARIO, sum(INF.VA_TOTAL) as va_total, count(INF.ID_ITEM) as qtdItens, count(distinct NF.ID_NF) as qtdNotas from DECLARACAO DE inner join CADASTRO CAD on (CAD.ID_DECLARACAO=DE.ID_DECLARACAO) inner join NOTA_FISCAL NF on (NF.ID_CADASTRO=CAD.ID_CADASTRO) inner join ITEM_NOTA INF on (INF.ID_NF=NF.ID_NF) inner join PRODUTO PROD on (PROD.ID_PRODUTO=INF.ID_PRODUTO) group by DE.ID_DECLARACAO, PROD.ID_PRODUTO_OFICIAL, NF.CO_CNPJ_CPF_DESTINATARIO order by  DE.ID_DECLARACAO, PROD.ID_PRODUTO_OFICIAL, NF.CO_CNPJ_CPF_DESTINATARIO;

[afelipe@ afelipe]$ time /opt/firebird/bin/isql -input /home/afelipe/temp/lixo3/query_atual.sql -output /dev/null -USER sysdba -PASSWORD eLEJB4VH  /opt/firebird/bddnf.fdb

real    1m10.325s
user    0m11.664s
sys     0m0.624s
[afelipe@ afelipe]$



SQL> update CADASTRO set IN_CADASTRO_MAIS_ATUAL = case when CADASTRO.ID_CADASTRO=  (select max(CAD2.ID_CADASTRO) from CADASTRO CAD2 inner join DECLARACAO DECL on (DECL.ID_DECLARACAO=CAD2.ID_DECLARACAO) where CAD2.ID_EMPRESA=CADASTRO.ID_EMPRESA  and DECL.AM_REFERENCIA =  (select max(DEC2.AM_REFERENCIA) from DECLARACAO DEC2 where DEC2.IN_FOI_RETIFICADA=0 and        1         in (select CAD3.ID_CADASTRO from CADASTRO CAD3  where CAD3.ID_DECLARACAO=DEC2.ID_DECLARACAO and CAD3.ID_EMPRESA=CADASTRO.ID_EMPRESA )  )and DECL.IN_FOI_RETIFICADA=0 )then 1 else 0 end;
Current memory = 898464
Delta memory = 11084
Max memory = 15377564
Elapsed time= 1.03 sec
Cpu = 0.00 sec
Buffers = 2048
Reads = 0
Writes = 7484
Fetches = 464535

SQL>

SQL> update CADASTRO set IN_CADASTRO_MAIS_ATUAL = case when CADASTRO.ID_CADASTRO=  (select max(CAD2.ID_CADASTRO) from CADASTRO CAD2 inner join DECLARACAO DECL on (DECL.ID_DECLARACAO=CAD2.ID_DECLARACAO) where CAD2.ID_EMPRESA=CADASTRO.ID_EMPRESA  and DECL.AM_REFERENCIA =  (select max(DEC2.AM_REFERENCIA) from DECLARACAO DEC2 where DEC2.IN_FOI_RETIFICADA=0 and exists (select CAD3.ID_CADASTRO from CADASTRO CAD3  where CAD3.ID_DECLARACAO=DEC2.ID_DECLARACAO and CAD3.ID_EMPRESA=CADASTRO.ID_EMPRESA )  )and DECL.IN_FOI_RETIFICADA=0 )then 1 else 0 end ;
Current memory = 907828
Delta memory = 9364
Max memory = 15386928
Elapsed time= 0.69 sec
Cpu = 0.00 sec
Buffers = 2048
Reads = 0
Writes = 0
Fetches = 253649

SQL>





file query_atual.sql:
update CADASTRO set IN_CADASTRO_MAIS_ATUAL = case when CADASTRO.ID_CADASTRO=  (select max(CAD2.ID_CADASTRO) from CADASTRO CAD2 inner join DECLARACAO DECL on (DECL.ID_DECLARACAO=CAD2.ID_DECLARACAO) where CAD2.ID_EMPRESA=CADASTRO.ID_EMPRESA  and DECL.AM_REFERENCIA =  (select max(DEC2.AM_REFERENCIA) from DECLARACAO DEC2 where DEC2.IN_FOI_RETIFICADA=0 and exists (select CAD3.ID_CADASTRO from CADASTRO CAD3  where CAD3.ID_DECLARACAO=DEC2.ID_DECLARACAO and CAD3.ID_EMPRESA=CADASTRO.ID_EMPRESA )  )and DECL.IN_FOI_RETIFICADA=0 )then 1 else 0 end ;

SQL> set stats on;
SQL> update CADASTRO set IN_CADASTRO_MAIS_ATUAL = case when CADASTRO.ID_CADASTRO=  (select max(CAD2.ID_CADASTRO) from CADASTRO CAD2 inner join DECLARACAO DECL on (DECL.ID_DECLARACAO=CAD2.ID_DECLARACAO) where CAD2.ID_EMPRESA=CADASTRO.ID_EMPRESA  and DECL.AM_REFERENCIA =  (select max(DEC2.AM_REFERENCIA) from DECLARACAO DEC2 where DEC2.IN_FOI_RETIFICADA=0 and exists (select CAD3.ID_CADASTRO from CADASTRO CAD3  where CAD3.ID_DECLARACAO=DEC2.ID_DECLARACAO and CAD3.ID_EMPRESA=CADASTRO.ID_EMPRESA )  )and DECL.IN_FOI_RETIFICADA=0 )then 1 else 0 end ;
Current memory = 903720
Delta memory = 348268
Max memory = 903720
Elapsed time= 0.72 sec
Cpu = 0.00 sec
Buffers = 2048
Reads = 849
Writes = 231
Fetches = 322602

SQL>
