Dúvida com CURSOR e WHILE

21/02/2005

0

Bom dia,

Para situar:

Tenho uma tabela de cadastro de clientes por empresa, com chave cod_empresa e cod_cliente. O cod_empresa é o código da empresa que cadastrou o cliente.

Tenho tbem uma tabela de vendas, com chave nro. sequencial e empresa da venda e eu referencio ao cliente usando cod_empresa do cliente e cod_cliente.

Sei que não está certo, pois posso cadastrar um mesmo cliente para mais de uma empresa e realizar vendas em empresas diferentes para um mesmo cliente.

Agora tenho que corrigir isso. Sei o que fazer, mas não sei qual é a melhor forma de fazê-lo.

Se eu usar um CURSOR o processo ficará muito lento, se eu uso um WHILE melhora um pouco a performance, mas mesmo assim fica lento demais.

Alguém tem alguma sugestão?

Sds
Roberto


Robertolucio

Robertolucio

Responder

Posts

21/02/2005

Emerson Nascimento

um CURSOR numa Stored Procedure não deveria ficar lento. A lentidão pode ocorrer por conta de uma rotina não tão bem estruturada.

Primeiro é preciso conhecer um pouco da estrutura das suas tabelas como, por exemplo, se o CNPJ é de cadastramento obrigatório. Se sim, bastaria selecionar o cliente, dentre os CNPJs iguais, cuja data seja mais recente e provavelmente tem os dados atuais (com group by, por exemplo), atribuir um ID para esse cliente e alterar todas as referências para o mesmo CNPJ nas tabelas relacionadas.

Creio que o CURSOR seja a melhor forma de fazer isso.


Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar