Delete cascade com execute block
31/01/2013
0
Olá amigos do fórum
tenho um problema que já está me persiguindo há alguns dias e talvez alguém dos amigos do fórum possa me ajudar.
tenho 4 tabelas Vendas(VENDAS), Itens da Venda(VENDAITENS), Lançamentos do Caixa(LANCAMENTOS)e Contas Pagas(CTAPAGAS).Montei um execute block para zerar a movimentação dessas tabelas dado um período inicial e final. O script é este abaixo:
Dessa forma ele exclui, só que para um período de 2 dias exemplo: 10/01/2013 a 12/01/2013 ela demora cerca de 5 minutos para excluir, está muito lento. Algum dos amigos conhece uma outra forma de otimizar essa operação ? Pq suponho o seguinte, se para excluir a movimentação de 2 dias demora 5 minutos imaginem para excluir 2 meses então...
Obrigado
tenho um problema que já está me persiguindo há alguns dias e talvez alguém dos amigos do fórum possa me ajudar.
tenho 4 tabelas Vendas(VENDAS), Itens da Venda(VENDAITENS), Lançamentos do Caixa(LANCAMENTOS)e Contas Pagas(CTAPAGAS).Montei um execute block para zerar a movimentação dessas tabelas dado um período inicial e final. O script é este abaixo:
EXECUTE BLOCK( DATA1 DATE = :DATA1, DATA2 DATE = :DATA2 ) AS DECLARE VARIABLE DATAVENDA DATE; DECLARE VARIABLE IDVENDA INTEGER=0; BEGIN FOR SELECT VENDAS.DATA, VENDAS.IDVENDA FROM VENDAS WHERE VENDAS.DATA BETWEEN :DATA1 AND :DATA2 AND VENDAS.COO IS NULL INTO :DATAVENDA, :IDVENDA AS CURSOR CRVENDAS DO BEGIN DELETE FROM VENDAITENS WHERE VENDAITENS.IDVENDA = :IDVENDA; DELETE FROM VENDAS WHERE CURRENT OF CRVENDAS; DELETE FROM LANCAMENTOS WHERE DATA = :DATAVENDA; DELETE FROM CTAPAGAS WHERE DATA = :DATAVENDA; END END
Dessa forma ele exclui, só que para um período de 2 dias exemplo: 10/01/2013 a 12/01/2013 ela demora cerca de 5 minutos para excluir, está muito lento. Algum dos amigos conhece uma outra forma de otimizar essa operação ? Pq suponho o seguinte, se para excluir a movimentação de 2 dias demora 5 minutos imaginem para excluir 2 meses então...
Obrigado
Itamar Monteiro
Curtir tópico
+ 0
Responder
Clique aqui para fazer login e interagir na Comunidade :)