Fórum Delete cascade com execute block #433750
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 :)