Skip Navigation Links
Novas Tecnologias
Ferramentas Adicionais
Ferramentas Adicionais


Dica No :
1161
Assunto : SQL Server
Titulo: Deletar muitos registros com o uso do TOP

Gostou do texto ? Vote e dê sua opinião! Pontuação atual :

Translate this page now :






Adicione aos Favoritos!
BlogBlogs Rec6 Linkk Ueba Technorati Delicious DiggIt! StumbleUpon



Deletar uma quantidade muito grande de registros traz uma série de dificuldades.

Cada registro deletado é inserido no log de transações, então ter espaço suficiente para o log é uma necessidade. Se a base de dados estiver em recovery model full, o espaço é indispensável, se a base estiver em recovery model simple, se o delete for dividido em vários blocos de dados então pode-se fazer a deleção com um tamanho de log menor, se for feito um delete único não há solução a questão do espaço no log.

O 2o problema a considerar é o bloqueio. Os registros serão bloqueados enquanto a transação estiver em andamento e se a quantidade de registros for muito grande isso pode ser muito significativo.

Para os dois casos uma solução importante é realizar a deleção em blocos menores de registros. Para isso o SQL Server suporta o uso da clausula TOP junto ao Delete.

A clausula TOP nos permite organizar a deleção de forma a ser completada porém sempre executada em pequenos blocos. Veja como fica:

Select 1
while @@rowcount>0
begin
delete top(1000) from tabela
end

Neste exemplo a deleção será feita em blocos de 1000 registros. O while irá garantir que a deleção seja concluida, repetindo blocos de 1000 até que não hajam mais registros a serem deletados.


Nome :
E-mail:
Comentarios :
 
 
Os Últimos Comentários
data: 11/27/2017 9:52:00 PM
nome: OUMHBfBYwZOY
email: jimosanil0c@hotmail.com
comentário:
Yi4enh http://www.LnAJ7K8QSpfMO2wQ8gO.com

 1  
Dicas
Dica do Dia
Receba Dicas Por Email
E-mail :  
 


 (help)
Aceito receber informativos do devASPNet, informações de eventos e treinamentos

Veja Quais Informativos Você Receberá

Pesquisar Dicas
Pesquisar Artigos, Dicas e Noticias

Banco de Dados
Algumas Entrevistas
Links Importantes

Búfalo Informática, Treinamento e Consultoria
R. Alvaro Alvim, 37/920 Centro - Cinelândia - Rio de Janeiro Cep: 20031-010
Tel : (21) 2262-1368 (21) 9240-5134 E-mail : Contato@bufaloinfo.com.br