|
Publicité ' | |||||||||||||||||||||||
|
|
#1 | ||||
|
Membre régulier
![]() Inscription : janvier 2007 Messages : 349 ![]() |
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:
Citation:
Citation:
Citation:
![]() Quelqu'un aurait t'il une solution pour vider mes tables EFFICACEMENT et RAPIDEMENT ? je prends nimporte quelle idée ...
__________________
.-*K.E.U.B*-.
|
||||
|
|
00
|
|
|
#2 |
|
Membre Expert
![]() Inscription : novembre 2004 Messages : 1 298 ![]() |
Quel OS ?
|
|
|
00
|
|
|
#3 |
|
Membre régulier
![]() Inscription : janvier 2007 Messages : 349 ![]() |
windows et linux ( pour pas faire compliqué... )
__________________
.-*K.E.U.B*-.
|
|
|
00
|
|
|
#4 |
|
Membre expérimenté
![]() ![]() Inscription : mai 2005 Messages : 414 ![]() |
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. |
|
|
00
|
|
|
#5 |
|
Membre régulier
![]() Inscription : janvier 2007 Messages : 349 ![]() |
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*-.
|
|
|
00
|
|
|
#6 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Spécialiste en bases de données Inscription : septembre 2006 Messages : 2 887 ![]() |
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 !) |
|
|
00
|
|
|
#7 |
|
Membre Expert
![]() ![]() |
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 - - - - - - - - - |
|
|
00
|
|
|
#8 | ||
|
Membre régulier
![]() Inscription : janvier 2007 Messages : 349 ![]() |
Citation:
2) j'ai pas les droits admin pour faire un load .. Citation:
2) heu ... jveux bien un exemple lol
__________________
.-*K.E.U.B*-.
|
||
|
|
00
|
|
|
#9 |
|
Membre Expert
![]() ![]() |
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. |
|
|
00
|
|
|
#10 | |
|
Expert Confirmé Sénior
![]() ![]() ![]() Spécialiste en bases de données Inscription : septembre 2006 Messages : 2 887 ![]() |
Citation:
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 !) |
|
|
|
00
|
|
|
#11 |
|
Membre régulier
![]() Inscription : janvier 2007 Messages : 349 ![]() |
mdr le plongeoir .. c'est une belle méthaphore
en tout cas merci pour vos réponses je vais regarder ça ...
__________________
.-*K.E.U.B*-.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com