Cursor

01/09/2005

0

Olá,

Estou com um problema, tenho uma procedure que criar um cursor com mais de 60.000 registros para eu poder atualizar varias tabelas, o problema ocorre que o cursor se perde no meio do caminho e as tabelas não são atualizadas como deveriam.

Já ouvi falar que no SQL cursores com mais de 10.000 linhas dão esse problema, alguem sabe se isso é verdade e como poderia resolver esse problema.

Muito obrigado.
Emerson


Emersonn

Emersonn

Responder

Posts

02/09/2005

Emerson Nascimento

publique a instrução completa. quem sabe assim alguém pode dar uma solução...


Responder

02/09/2005

Rjun

Uma tabela temporária não resolveria seu problema?


Responder

03/09/2005

Marcus.magalhaes

bom dia.

Como vc está declarando o cursor, procure declara-lo como estático, assim vc não tem o risco de alguém atualizar a tabela à qual o seu cursor faz referencia.

Esse problema eu encontrei com versões mais antigas do SS, porém, não estou certo de sua correção em versões novas.

Porém a sugestão do nosso colega de utilizar tabela temporária é bastante válida, uma vez q o cursor tem um custo de CPU bastante grande, o q pode causar perda de performance.

Espero ter ajudado.

Att,


Responder

03/09/2005

Emersonn

Ola...

Eu já pensei em criar uma tabela temporária mas nesse caso não nada, porque eu preciso ler essa qtd de registro e para cada linha lida eu vou atualizar outras linhas em outras tabelas, com isso tenho que ficar dentro de um loop.

Tem outra maneira de criar um loop sem ser pelo cursor.

Esse problema só ocorre com um volume muito grande de registro, tenho outros cursores menores que vão que é uma beleza.


Responder

07/09/2005

Marcus.magalhaes

Boa noite,

Vc poderia utilizar a tabela temporária e fazer os updates utilizando Join.

Ex.:
Update td
set coluna = valor
From tabele_temp temp Inner join tabela_desejada td On temp.col = td.coluna
Where condição

Espero ter ajudado.

Att,


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