Twitter iPhone pliant OnePlus 11 PS5 Disney+ Orange Livebox Windows 11

Optimisation des DELETE

3 réponses
Avatar
andre_natacha
Bonjour

J'ai une proc=E9dure de DELETE qui est tr=E8s longue car le=20
nombre de lignes est assez cons=E9quent. Je ne peux pas=20
utiliser de TRUNCATE puisque la suppression des lignes est=20
partielle dans la table.
Existe t il un param=E9trage permettant d'utiliser le DELETE=20
avec une clause WHERE sans enregistrement dans le journal=20
des transction pour que le DELETE soit plus rapide ?

Merci de votre aide.

3 réponses

Avatar
Xavier Pillons [MS]
Je ne pense pas que cela soit possible. Une autre solution consisterai à
ajouter une colonne servant à marquer les enregistrements à supprimer, puis
à effectuer des lots de suppression.

--
Xavier Pillons
Microsoft Services


"" wrote in
message news:47d001c3ff6c$87af0150$

Bonjour

J'ai une procédure de DELETE qui est très longue car le
nombre de lignes est assez conséquent. Je ne peux pas
utiliser de TRUNCATE puisque la suppression des lignes est
partielle dans la table.
Existe t il un paramétrage permettant d'utiliser le DELETE
avec une clause WHERE sans enregistrement dans le journal
des transction pour que le DELETE soit plus rapide ?

Merci de votre aide.
Avatar
Michel Walsh
Salut,

On ne peut pas dé-activer les écritures de journal des opérations de
INSERT, UPDATE et DELETE. Même TRUNCATE TABLE est loggué ( quoique de façon
minimale ).

Si on utilise MS SQL Server 7, ou plus ancien, enlever tous les
indexes sauf celui impliqué dans la clause WHERE, effectuer le DELETE,
recréer les indexes par après?



Vanderghast, Access MVP


"" wrote in
message news:47d001c3ff6c$87af0150$

Bonjour

J'ai une procédure de DELETE qui est très longue car le
nombre de lignes est assez conséquent. Je ne peux pas
utiliser de TRUNCATE puisque la suppression des lignes est
partielle dans la table.
Existe t il un paramétrage permettant d'utiliser le DELETE
avec une clause WHERE sans enregistrement dans le journal
des transction pour que le DELETE soit plus rapide ?

Merci de votre aide.
Avatar
lionelp
Bonjour,

set rowcount 500
while nbligne_affectées > 0
delete table where condition

set rowcount 0

Cordialement,
LionelP

"" wrote in
message news:47d001c3ff6c$87af0150$

Bonjour

J'ai une procédure de DELETE qui est très longue car le
nombre de lignes est assez conséquent. Je ne peux pas
utiliser de TRUNCATE puisque la suppression des lignes est
partielle dans la table.
Existe t il un paramétrage permettant d'utiliser le DELETE
avec une clause WHERE sans enregistrement dans le journal
des transction pour que le DELETE soit plus rapide ?

Merci de votre aide.