Boa tarde, olha eu novamente com mais uma dúvida referente a minha procedure, vamos lá...
CREATE PROCEDURE mudaKey(in cod int)
BEGIN
DECLARE c int DEFAULT cod;
DECLARE a,b INT;
declare zeros int default 0;
declare codBarra char(14);
declare i int default 0;
DECLARE mudaKey CURSOR FOR select key_produtos FROM produtos;
DECLARE CONTINUE HANDLER FOR NOT FOUND SET b=1;
OPEN mudaKey;
REPEAT
FETCH mudaKey INTO a;
set zeros = 14 - CHARACTER_LENGTH(a);
set codBarra = a;
set i = 0;
WHILE(i < zeros) do
SET codBarra = concat('0', codBarra);
set i = i + 1;
end while;
UPDATE produtos as p set p.key_produtos = c, p.CODIGO_PRODUTO_INT = c, p.CODIGO_BARRA_STR = codBarra where p.key_produtos = a;
UPDATE compras_itens AS ci SET ci.KEY_PRODUTOS = c, ci.CODIGO_PRODUTO_INT = c, ci.CODIGO_BARRA_STR = codBarra
WHERE ci.KEY_PRODUTOS = a;
UPDATE vendas_itens AS vi SET vi.KEY_PRODUTOS = c, vi.CODIGO_PRODUTO_INT = c, vi.CODIGO_BARRA_STR = codBarra
WHERE vi.KEY_PRODUTOS = a;
UPDATE vendasnf_itens AS vnfi SET vnfi.KEY_PRODUTOS = c, vnfi.CODIGOBARRA = codBarra
WHERE vnfi.KEY_PRODUTOS = a;
set c = c + 1;
UNTIL b=1 END REPEAT;
CLOSE mudaKey;
SELECT "ok";
END;
Esta aí é minha procedure, tenho na tabela "vendas_itens" um total de um pouco menos de 1.000.000 de registros, torno de 200 mb somente nesta tabela.
Daí quando executo esta procedure ela demora (obs.: só para este banco, pois tenho clientes com bancos bem maiores) mais ou menos 27 minutos para atualizar as tabelas referidas à procedure.
Bom, se alguém puder me ajudar a otimizar este processo, vou agradecer muito, desde já agradeço e até!
Pergunta
jlcSampaio
Boa tarde, olha eu novamente com mais uma dúvida referente a minha procedure, vamos lá...
Esta aí é minha procedure, tenho na tabela "vendas_itens" um total de um pouco menos de 1.000.000 de registros, torno de 200 mb somente nesta tabela.
Daí quando executo esta procedure ela demora (obs.: só para este banco, pois tenho clientes com bancos bem maiores) mais ou menos 27 minutos para atualizar as tabelas referidas à procedure.
Bom, se alguém puder me ajudar a otimizar este processo, vou agradecer muito, desde já agradeço e até!
Link para o comentário
Compartilhar em outros sites
2 respostass a esta questão
Posts Recomendados
Participe da discussão
Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.