|
Bas de page | |
---|---|
Auteur | Sujet : [oracle PL/SQL] Problème de mis à jour |
![]() Publicité | Posté le 17-07-2007 à 16:41:56 ![]() ![]() |
MagicBuzz | Est-ce que tu peux nous détailler ton problème "de plus haut niveau" ?
|
glwad | C'est une méthodologie générale adoptée à cause des volumetries et des espaces disponibles pour les tablespaces. Ainsi, il est possible de faire des commit intermédiaires pendant l'update.
Message édité par glwad le 17-07-2007 à 17:46:17 |
MagicBuzz | Etrange ton truc.
|
glwad | une petite erreur s'est glissée dans mon code: j'update la même table. le but est de donner une valeur par défaut au champ "ABREGE"; et ensuite, lorsque c'est possible, lui donner sa valeur finale.
|
couak | les index bitmaps sont performants pour les colonnes à faible cardinalité (i.e. peu de valeurs changeantes, genre champ sexe avec H/F)
|
MagicBuzz | (oui, moi je parlais d'index tout courts surtout, genre est-ce que la requête tape bien dans les bons indexes ? ne peux-tu pas rajouter un filtre -même inutile et redondant- afin d'aider Oracle à utiliser le bon index ? etc.)
Message cité 1 fois Message édité par MagicBuzz le 18-07-2007 à 10:26:07 |
glwad | Le plan d'exécution (celui que TOAD retourne) est le suivant:
Message édité par glwad le 18-07-2007 à 10:23:18 |
MagicBuzz | Il index quoi ton index IDX_AGR_AN_AB ? |
MagicBuzz | Genre il te faut ici un index sur :
|
![]() Publicité | Posté le 18-07-2007 à 10:30:40 ![]() ![]() |
glwad | IDX_AGR_AN_AB es un index double sur (AN,AB) de la table AGR
|
couak |
|
couak |
|
MagicBuzz |
|
couak | ah euh je viens de penser à un truc : qu'est ce qui prend le plus de temps ? la recherche des informations via les select ou la mise à jour des données avec l'update ? |
glwad |
|
couak | bon bah voilà un début de piste |
glwad |
|
casimimir | il faut voir le contexte dans lequel tu travailles mais je vais t'expliquer la manière dont je fais cela dans des cas de grosses volumétries dans le cadre d'un datawarehouse.
|
MagicBuzz | Poste les deux updates "réels".
|
glwad | Je ne peux pas poster le code réel (mon CP ne le voit pas d'un très bon oeil). La seule modification apportée au code postée concerne le nom des tables et des champs.
|
MagicBuzz | En gros, pour ton index, tu dois reprendre l'intégralité des champs des filtres qui se trouvent dans le WHERE du UPDATE. |
glwad | J'ai fait l'index sur les 3 champs dont dépendent le filtre (AN,ANNEE_R,MOIS_R). je reste toujours sur des bases de 18h (j'ai stoppé l'exécution ce matin).
|
casimimir |
glwad |
|
Profil supprimé | Posté le 19-07-2007 à 10:57:39 ![]() Ca n'arrange rien avec le Bulk Collect ? |
couak |
|
glwad |
Message édité par glwad le 19-07-2007 à 12:15:18 |
glwad | Impossible d'utiliser le BULK COLLECT: problème d'espace. Après 7h de traitement, il a planté avec le message d'erreur:
|
casimimir | decoupe ton update en plus petite partie pour pouvoir commiter comme tu le sens |
glwad |
|
glwad | Bonjour,
|
![]() Publicité | Posté le ![]() ![]() |
Sujets relatifs | |
---|---|
résolu | Probleme de chargement de dll |
Problème affichage FF / IE7 | Problème sur "€" et" "-" avec FPDF (génération PDF) |
Données tronquées dans SPOOL SQL | Problème de variable dans un ActiveChart.SetSourceData Source |
problème lecture d'un fichier texte | Plusieurs flash dans une page html - probleme avec swfObject |
Problème boucle à droite! | Probleme utilisation pointeur et reference |
Plus de sujets relatifs à : [oracle PL/SQL] Problème de mis à jour |