Précédent   Forum des professionnels en informatique > Bases de données > DB2
DB2 Forum d'entraide technique sur la base de données DB2. Voir aussi -> Rubrique DB2
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/10/2007, 17h17   #1
Membre régulier
 
Avatar de keub51
 
Inscription : janvier 2007
Messages : 349
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 349
Points : 79
Points : 79
Par défaut Supprimer les entrées d'une table

Bonjour,

J'ai trois tables qui contiennent beaucoup de données. J'ai besoin de faire une méthode Clear() qui me vide ces trois tables.

Jusque là rien de dur ...

Citation:
T'as qu'à faire un delete from <nomtable>
hihi, non pas possible, la requête prends trop de temps et est rejetée par le serveur

Citation:
Bah tu n'a qu'a faire un delete ligne par ligne alors
Ok ca marche mais c'est excessivement long... donc solution rejetée

Citation:
Charge un fichier vide dans les trois table
Bien pensé mais j'ai pas les droits admins ...

Citation:
Drop et reconstruit tes tables !!
On me l'interdit...



Quelqu'un aurait t'il une solution pour vider mes tables EFFICACEMENT et RAPIDEMENT ?

je prends nimporte quelle idée ...
__________________
.-*K.E.U.B*-.
keub51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/10/2007, 17h40   #2
Membre Expert
 
Inscription : novembre 2004
Messages : 1 298
Détails du profil
Informations forums :
Inscription : novembre 2004
Messages : 1 298
Points : 1 355
Points : 1 355
Quel OS ?
Mercure est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2007, 08h07   #3
Membre régulier
 
Avatar de keub51
 
Inscription : janvier 2007
Messages : 349
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 349
Points : 79
Points : 79
windows et linux ( pour pas faire compliqué... )
__________________
.-*K.E.U.B*-.
keub51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2007, 11h01   #4
Membre expérimenté
 
Inscription : mai 2005
Messages : 414
Détails du profil
Informations forums :
Inscription : mai 2005
Messages : 414
Points : 589
Points : 589
tout betement une solution intermediaire entre ta proposition 1 et la 2.

Des DELETE avec des commit intermédiaires par paquet de n lignes. Ce sera plus rapide que ligne à ligne et ca sera accepté par le serveur.
gregory.broissard est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2007, 11h48   #5
Membre régulier
 
Avatar de keub51
 
Inscription : janvier 2007
Messages : 349
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 349
Points : 79
Points : 79
oué j'y avais pensé ... mais bon ca sera quand même assez long

c'est pour l'instant la meilleure solution je pense

quelqu'un a mieux ? un éclair de génie ou une idée loufoque ?
__________________
.-*K.E.U.B*-.
keub51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2007, 13h13   #6
Expert Confirmé Sénior

 
Avatar de fsmrel
 
Spécialiste en bases de données
Inscription : septembre 2006
Messages : 2 887
Détails du profil
Informations professionnelles :
Activité : Spécialiste en bases de données
Secteur : Conseil

Informations forums :
Inscription : septembre 2006
Messages : 2 887
Points : 5 144
Points : 5 144
1) Commencer par supprimer les index et les recréer en fin de traitement. Ça ne marche pas à tous les coups, mais c'est à essayer.

2) Charger dans une table les lignes à ne pas supprimer et faire un LOAD à partir de cette table. Ça marche aussi dans certains cas de figure.
__________________
_
Faites simple, mais pas plus simple ! (A. Einstein)
E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
=> La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

__________________

Bases de données relationnelles et normalisation : de la première à la sixième forme normale (Bonne lecture !)
fsmrel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2007, 13h36   #7
Membre Expert
 
Avatar de Hédhili Jaïdane
 
Homme Hédhili Jaïdane
Consultant/Assistant/Formateur/Développeur Indépendant AS/400 Cobol
Inscription : juin 2007
Messages : 1 678
Détails du profil
Informations personnelles :
Nom : Homme Hédhili Jaïdane
Localisation : Tunisie

Informations professionnelles :
Activité : Consultant/Assistant/Formateur/Développeur Indépendant AS/400 Cobol

Informations forums :
Inscription : juin 2007
Messages : 1 678
Points : 2 182
Points : 2 182
Envoyer un message via Skype™ à Hédhili Jaïdane
Bonjour.

Encore un peu d'épices :

-1°- Si tu peux passer une commande à l'OS à partir de ton prog et que ton OS a une commande de clear "vidage" d'un fichier sans le supprimer, le tour est joué. Je te dis ça parce que je connais très peu UNIX.

-2°- Par contre là ça doit marcher, c'est une vieille astuce à condition que tu puisses le faire : tu construis un ensemble de vues sur ta table qui constitue une partition, càd que l'union des vues fait toute la table (par ex. par plages d'une clé majeure, par plage de dates, etc...). Tu peux alors effacer les lignes de la table à travers celles des vues. Cela devrait prendre plus de temps mais tu peux lancer les delete (avec ou sans commit) en parallèle ou espacés et tu joues une enterloupette au serveur : d'où le gain de temps.

Amicalement
Hédhili Jaïdane
- - - - - - - - -
Hédhili Jaïdane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2007, 14h43   #8
Membre régulier
 
Avatar de keub51
 
Inscription : janvier 2007
Messages : 349
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 349
Points : 79
Points : 79
Citation:
Envoyé par fsmrel Voir le message
1) Commencer par supprimer les index et les recréer en fin de traitement. Ça ne marche pas à tous les coups, mais c'est à essayer.

2) Charger dans une table les lignes à ne pas supprimer et faire un LOAD à partir de cette table. Ça marche aussi dans certains cas de figure.
1) quest ce que tu apelle "supprimer les index" ? cest a dire supprimer les relations entre les tables ? si oui > il n'y a aucune relation entre les tables

2) j'ai pas les droits admin pour faire un load ..

Citation:
-1°- Si tu peux passer une commande à l'OS à partir de ton prog et que ton OS a une commande de clear "vidage" d'un fichier sans le supprimer, le tour est joué. Je te dis ça parce que je connais très peu UNIX.

-2°- Par contre là ça doit marcher, c'est une vieille astuce à condition que tu puisses le faire : tu construis un ensemble de vues sur ta table qui constitue une partition, càd que l'union des vues fait toute la table (par ex. par plages d'une clé majeure, par plage de dates, etc...). Tu peux alors effacer les lignes de la table à travers celles des vues. Cela devrait prendre plus de temps mais tu peux lancer les delete (avec ou sans commit) en parallèle ou espacés et tu joues une enterloupette au serveur : d'où le gain de temps.
1) oui passé par une commande est une solution comment faire

2) heu ... jveux bien un exemple lol
__________________
.-*K.E.U.B*-.
keub51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2007, 15h37   #9
Membre Expert
 
Avatar de Hédhili Jaïdane
 
Homme Hédhili Jaïdane
Consultant/Assistant/Formateur/Développeur Indépendant AS/400 Cobol
Inscription : juin 2007
Messages : 1 678
Détails du profil
Informations personnelles :
Nom : Homme Hédhili Jaïdane
Localisation : Tunisie

Informations professionnelles :
Activité : Consultant/Assistant/Formateur/Développeur Indépendant AS/400 Cobol

Informations forums :
Inscription : juin 2007
Messages : 1 678
Points : 2 182
Points : 2 182
Envoyer un message via Skype™ à Hédhili Jaïdane
Ah 1) si je la savais et 2) si je le pouvais. Non sérieusemnt, je ne connais pas bien ni UNIX ni SQL. Désolé. Mais sur mes machines AS/400 je sais le faire.
- La cmde pour effacer le contenu d'un fichier sans le supprimer c'est CLRPFM. Il doit se trouver l'équivalent sous UNIX.
- pour les vues (ou même des index), il faut, par ex, créer une vue avec un WHERE z1 BETWEEN 0 and 50 et une autre BETWEEN 51 and 99 si z1 est un champ de long 2. Ces deux vues couvrent toute la table. Puis on delete toutes les lignes des vues ce qui supprimera toutes les lignes de la table.
Hédhili Jaïdane est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2007, 15h58   #10
Expert Confirmé Sénior

 
Avatar de fsmrel
 
Spécialiste en bases de données
Inscription : septembre 2006
Messages : 2 887
Détails du profil
Informations professionnelles :
Activité : Spécialiste en bases de données
Secteur : Conseil

Informations forums :
Inscription : septembre 2006
Messages : 2 887
Points : 5 144
Points : 5 144
Citation:
quest ce que tu apelle "supprimer les index" ? cest a dire supprimer les relations entre les tables ? si oui > il n'y a aucune relation entre les tables
Par supprimer les index, je veux dire soumettre l'instruction

DROP INDEX

qui est le pendant de l'instruction

CREATE INDEX

Les index sont les turbos (plus précisément des Arbres B) qui permettent d'accéder rapidement aux données, mais qui coûtent en mise à jour (Insert, Update, Delete).

Cela dit, je vois que vous n'avez pas les droits pour agir au niveau physique. Vous êtes dans la situation de celui qui est en haut du plongeoir, à 15 mètres, alors que la bassine de réception fait 30 cm de diamètre. Et en plus on vous colle un bandeau sur les yeux (ça ressemble à un bizutage).

Demandez à celui qui a les droits de prendre le relais.
__________________
_
Faites simple, mais pas plus simple ! (A. Einstein)
E=mc², mais si on discute un peu, on peut l’avoir pour beaucoup moins cher... (G. Lacroix, « Les Euphorismes de Grégoire »)
=> La relativité n'existerait donc que relativement aux relativistes (Jean Eisenstaedt, « Einstein et la relativité générale »)

__________________

Bases de données relationnelles et normalisation : de la première à la sixième forme normale (Bonne lecture !)
fsmrel est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 03/10/2007, 16h40   #11
Membre régulier
 
Avatar de keub51
 
Inscription : janvier 2007
Messages : 349
Détails du profil
Informations forums :
Inscription : janvier 2007
Messages : 349
Points : 79
Points : 79
mdr le plongeoir .. c'est une belle méthaphore ca sent le vécu nan ? lol


en tout cas merci pour vos réponses je vais regarder ça ...
__________________
.-*K.E.U.B*-.
keub51 est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h34.


 
 
 
 
Partenaires

Hébergement Web