truncate table serait de loin le meilleur. Si vous êtes inquiet des relations en raison de l'intégrité du référentiel, alors je vous suggère de mettre à jour séparément les tables qui le référencent par clé étrangère (par exemple si les clés étrangères ont ON DELETE SET NULL
puis UPDATE RefTbl SET Key = NULL WHERE Key IS NOT NULL
, de même, supprimez si cascade etc ...).
Sinon, si vous ne voulez pas, vous pouvez modifier votre requête pour être un peu plus rapide en utilisant ROWCOUNT:
--other code for loop
SET ROWCOUNT 1000000 --this limits the number of rows that will be processed
DELETE FROM Table1
Aussi, je ne sais pas pourquoi vous faites cela dans une transaction ? Cela créerait un énorme journal des transactions et aurait un impact sévère sur vos performances ... Lorsque vous effectuez des opérations comme le vidage de contenu de table, les transactions ne sont généralement pas pertinentes (cela pourrait être pertinent dans votre cas, mais je dis simplement que c'est rarement le cas) . Si vous avez besoin d'une transaction, au moins déplacez votre délai ...
Avez-vous une question? –