|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Candidat au titre de Membre du Club
![]() |
Salut,
Je supprime plusieurs table avec de nombreuses lignes. Cela prend un temps monstrueux. Prés de 2 heures !? TRUNCATE ne peut pas fonctionner du fait de nombreuses FOREIGN KEY. Comment accélérer les choses ! Merci. |
|
|
00
|
|
|
#2 |
![]() Inscription : septembre 2004 Messages : 626 ![]() |
Bonjour,
C'est une opération que tu fais au fil de l'eau ou bien une fois ponctuellement (genre purge de données) ? Ton perimètre de suppression est simple ou il est complexe à déterminer ? Tu peux poster ta requete ? Quelle proportion de ligne gardes tu ? Ce qui peut ralentir ta suppression : les triggers, les indexes... Si operation one shot, tu peux disabler les foreigns key qui pointent sur ta table, puis les triggers de cette table et ses indexes si tu es sur que tu peux te passer de ce que font les triggers éventuels. Si la proportion de ligne a garder est faible, tu peux créer une nouvelle table ne contenant que les données à garder et recréer dessus à la fin les indexes , triggers & contraintes de ta table initiales. Laly.
__________________
In the heart of the truly greats, perfection is never achieved but endlessly pursued. Mon article sur les fonctions analytiques d'Oracle (calcul de moyennes mobiles, de quartiles et bien d'autres...) |
|
|
00
|
|
|
#3 | ||||
|
Candidat au titre de Membre du Club
![]() |
Citation:
Citation:
Citation:
Citation:
|
||||
|
|
00
|
|
|
#4 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
C'est parce que tu fais pas tes truncates dans le bon ordre. Tu dois d'abord vider les tables filles et ensuite les mères et là tu pourras remplacer tes DELETE par des TRUNCATE
|
|
|
00
|
|
|
#5 |
|
Candidat au titre de Membre du Club
![]() |
|
|
|
00
|
|
|
#6 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
Sauf DELETE CASCADE
![]() Mais comme tu le fais pour le DELETE apparemment j'vois pas pourquoi tu fais pas un TRUNCATE
|
|
|
00
|
|
|
#7 | |
|
Membre du Club
![]() Inscription : janvier 2008 Messages : 50 ![]() |
Citation:
Solution : -1- désactiver toutes les foreign key (un peu plus simple que seulement celles nécessaires) -2- truncate de toutes les tables à purger -3- activation de toutes les contraintes désactivées |
|
|
|
00
|
|
|
#8 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
Je ne me rappelais pas que même si les tables filles sont vides ça pose problème
En plus les scripts d'activation/désactivation des contraintes est dispo sur le site |
|
|
00
|
|
|
#9 | |
|
Candidat au titre de Membre du Club
![]() |
Citation:
Merci beaucoup ! |
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com