|
Publicité ' | ||||||||||||||||||||||||
|
|
#1 |
|
Futur Membre du Club
![]() |
* Bonjour, *
je travail sur oracle 10g lors de la suppression des lignes (435 lignes) d'une table en exécutant la requête suivante Code :
DELETE FROM table1 WHERE table1.cle1 IN (SELECT cle1 FROM TABLE 2) et la table 2 contient la liste des clé à supprimé j'ai l'habitude d’exécuté ce type de requête et ça fonctionne mais cette fois ci j'ai pas de réponse la requête prend beaucoup de temps plus d' 1h est aucune ligne supprimée.(m'affiche toujours patientez svp) dans la console on à le message :j'ai vérifier dans mes deux tables j'ai pas de doublons . j'ai arrêter les services et relancer mais toujours rien sachant que j'ai essayé de supprimé une ligne de la table 1 en indiquant une valeur mais la même chose "patientez svp" * Merci * |
|
|
00
|
|
|
#2 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
La table est peut-être verrouillée : http://oracle.developpez.com/faq/?page=3-1#lock
Sinon, faudrait voir la volumétrie. |
|
|
00
|
|
|
#3 |
|
Futur Membre du Club
![]() |
je vais vérifier si la table est verrouillée ou pas
pour ce qui concerne la volumétrie j'ai exécuter une instruction du même type sur une table de 50 millions de lignes j'ai pas eu de problème alors que la table en question est moins volumineuse que celle ci |
|
|
00
|
|
|
#4 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 925 ![]() |
tu peux consulter V$SESSION_LONGOPS where TIMEREMAINING>0 pour voir si un gros table scan est en cours, et sinon effectivement DBA_LOCKS ou ton outil graphique préférer pour voir qui bloque qui.
|
|
00
|
|
|
#5 |
|
Futur Membre du Club
![]() |
j'ai vérifié la table n'est pas verrouille et y'av aucun scan sur cette table
alors j'ai essayer de supprimer une seule ligne s'à pris plus d'1 minutes mais celle ci à été supprimé cependant en exécutant la requête cité auparavant j'attend mais rien plus de 1h de temps d'exécution mais rien est'il possible que le problème est lorsque j'utilise un in |
|
|
00
|
|
|
#6 |
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 437 ![]() |
Utiliser un EXISTS serait mieux pour chopper des indexes.
Sinon, y aurait-il un trigger ON DELETE sur la table ?
__________________
More Code : More Bugs. Less Code : Less Bugs |
|
|
00
|
|
|
#7 |
![]() ![]() |
Ou dans le même esprit que le TRIGGER, des tables liées par des clefs étrangères ON DELETE à celle-ci ?
__________________
Email : http://scr.im/waldar |
|
00
|
|
|
#8 |
|
Expert Confirmé Sénior
![]() Inscription : juillet 2003 Messages : 3 437 ![]() |
Voir aussi des tables filles avec clé étrangères non indexées.
__________________
More Code : More Bugs. Less Code : Less Bugs |
|
|
00
|
|
|
#9 |
|
Expert Confirmé Sénior
![]() ![]() ![]() Laurent SchneiderAdministrateur de base de données Inscription : décembre 2005 Messages : 2 925 ![]() |
|
|
00
|
|
|
#10 |
|
Membre habitué
![]() Jean-Louis Etudiant Inscription : décembre 2010 Messages : 199 ![]() |
Dans :
il représente quoi le 2 ? je ne connais pas ce type de requête table2 je comprendrais mais table 2 je vois pas. Cordialement
__________________
Pourquoi faire simple quand on peut faire .......... compliqué
|
|
|
00
|
|
|
#11 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
C'est peut-être juste une faute de frappe, enfin, ce que j'en dis moi...
|
|
|
00
|
|
|
#12 |
|
Membre habitué
![]() Jean-Louis Etudiant Inscription : décembre 2010 Messages : 199 ![]() |
mouai j'me disais aussi ... fin si il a fait la même chose dans son script ..
__________________
Pourquoi faire simple quand on peut faire .......... compliqué
|
|
|
00
|
|
|
#13 |
|
Futur Membre du Club
![]() |
alors pour l'instruction c'est juste une erreur de frappe c'est table2
la suppression de 400 lignes c'est exécuté au bout d'une journée je n'explique pas cette lenteur est du à quoi je cherche mais je trouve pas !!! bon j'ai vérifier l'état de la table y'avait pas de problème certes y'a une clé étrangère dedans mais je l'utilise pas dans ma requête je travaille directe sur la clé primaire (la clé étrangère est indexé) un exist ou un in n'aurait rien changé s'a aurai pris le mm temps d’exécution |
|
|
00
|
|
|
#14 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
Si tu supprimes des enregistrements d'une table maitre, Oracle doit vérifier pour chaque PK supprimée s'il n'y a pas des dépendances via la FK, c'est surement ça qui est long... mais sans trace point de salut.
|
|
|
00
|
|
|
#15 |
|
Futur Membre du Club
![]() |
possible que ces due à ça comment faire pour avoir des traces pas bien compris.
la table en question subit des insertions de milliers de lignes durant un intervalle de temps est il possible que c'est un problème d'index mm si son statut est valide et le re-compilé fera il l'affaire |
|
|
00
|
|
|
#16 |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
On va pas réexpliquer à chaque fois comment faire une trace
|
|
|
00
|
|
|
#17 |
|
Membre Expert
![]() |
Regardez votre plan d’exécution... ne serait-ce que pour une ligne...
Vérifiez le nombre d'index présent sur la table... ceux ci sont mis à jour à chaque DELETE/INSERT/UPDATE Vérifiez vos triggers... La table n'est elle pas massivement accédée en lecture au moment de l'execution... etc.
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir. |
|
|
00
|
|
|
#18 |
|
Membre Expert
![]() |
Ces lenteurs n'interviennent que sur cette table?
__________________
Prendre conscience, c'est transformer le voile qui recouvre la lumière en miroir. |
|
|
00
|
|
|
#19 |
|
Futur Membre du Club
![]() |
je vais re-compilé les indexe car cette table est périodiquement mise à jour (insertion de plus de 1000lignes)
oui la lenteur intervient juste au niveau de cette table j'ai une autre plus volumineuse qui fait 4fois la taille de celle ci mais la suppression ne prend pas bcp de temps une affaire de secondes |
|
|
00
|
|
|
#20 | |
![]() ![]() Inscription : janvier 2004 Messages : 15 861 ![]() |
Citation:
|
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com