2010-09-01 6 views
9

J'ai une table qui a quelque chose comme un demi-million de lignes et je voudrais supprimer toutes les lignes.Comment supprimer efficacement toutes les lignes d'une table dans DB2

Si je fais simple delete from tbl, le journal des transactions se remplit. Je ne me soucie pas des transactions de ce cas, je ne veux pas revenir en arrière dans tous les cas. Je pourrais supprimer des lignes dans de nombreuses transactions, mais y a-t-il de meilleurs moyens pour cela?

Comment supprimer efficacement toutes les lignes d'une table dans DB2? Puis-je désactiver les transactions pour cette commande ou y at-il des commandes spéciales pour le faire (comme truncate dans MySQL)? Après avoir supprimé les lignes, je vais repeupler la base de données avec une quantité similaire de nouvelles données.

Répondre

14

Il semble que suite à la commande works dans les versions plus récentes de DB2.

TRUNCATE TABLE someschema.sometable IMMEDIATE 
7

Pour tronquer une table dans DB2, il suffit d'écrire:

alter table schema.table_name activate not logged initially with empty table 

D'après ce que j'ai pu lire, cela supprimera le contenu de la table sans faire aucune sorte de l'exploitation forestière qui ira beaucoup plus facile sur I de votre serveur/O.

+1

Cela peut ne pas fonctionner dans l'environnement répliqué/hadr en raison de l'absence de journalisation. –

+1

Cette réponse est très utile pour ceux qui ont besoin d'effacer une table sur les versions de DB2 qui n'ont pas d'instruction TRUNCATE TABLE. –

Questions connexes