IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Oracle Discussion :

[tuning]Maj d'une forte volumétrie


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 24
    Par défaut [tuning]Maj d'une forte volumétrie
    Salut tous,
    Je travaille actuellement sur la création d'une grose base de données (40 TO de données).

    Mon datawarehouse est sous oracle et j'effectue des mises à jour mensuelles.
    Pour faire les mises à jour, je me suis rendu compte que l'uptdate est excrécable en terme de performance,
    du coup j'utilises les "ordres"
    Delete from

    Insert


    Ma volumétrie augmentant fortement, je viens de mettre à jour 1 table de 20 millions de lignes en 3h...

    Je voulais savoir si il y a un moyen en auracle de réduire fortement le temps de traitmeent pour les mises à jour ...

    Merci d'avance

  2. #2
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    très mauvaise idée, il n'y a rien de pire qu'un DELETE

    Commençons par le commencement : version d'Oracle ? Partitioning installé (et license payée ) ? Volume de la table en question, FK, index, etc...

    Dis nous tout

  3. #3
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 24
    Par défaut
    Alors :

    Oracle 9;
    Partionning activé par rapport à un code_date;
    Volume de la table : 20 Millions de lignes soit ~20 Go (bcp de colonnes... )
    Ouais la table est indexée, et y a 3 FK

    Comment faire le update, car effectivement le delete est tout pourri,
    mais le update
    est pire !!
    Merci de ton/votre aide

  4. #4
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Par défaut
    Citation Envoyé par Fred_D
    très mauvaise idée, il n'y a rien de pire qu'un DELETE
    Tu veux dire à cause de la HWM, par opposition à TRUNCATE ?

  5. #5
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Par défaut
    Citation Envoyé par Magnus
    Tu veux dire à cause de la HWM, par opposition à TRUNCATE ?
    et également par rapport à la gestion des UNDO/RBS

  6. #6
    Membre averti
    Inscrit en
    Mars 2006
    Messages
    24
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 24
    Par défaut
    S'il vous plait
    parlez en français,
    ou expliquez un minimum,
    suis junior en oracle !
    Merci

  7. #7
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    la High Water Mark est un marqueur qui permet à Oracle de savoir où est le dernier bloc du tablespace. Le problème c'est qu'il est remis à 0 que lors de la création de la table ou d'un TRUNCATE (sans REUSE STORAGE). Du coup, tu peux très bien avoir un COUNT(*) qui dure très longtemps pour retourner 0... c'est parce qu'Oracle parcourt tous les blocs en cas de FULL SCAN.

    Trève de digression , le DELETE consomme du UNDO et du REDO, ce que fait aussi l'INSERT... du coup, ça fait double consommation. Si l'update est long c'est peut-être à cause des FK et/ou de trigger. Est-ce que l'update est sur la clé de partitionnement ? Est-ce qu'il est sur des FK ? Est-ce qu'il utilise bien les indexes ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Comment optimiser une alerte mail à fort volume
    Par El Riiico dans le forum SQL Procédural
    Réponses: 7
    Dernier message: 02/02/2007, 10h33
  2. Maj d'une base 7.0 vers une base 2000
    Par ditter dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 23/11/2005, 17h05
  3. Problème de MAJ d'une zone de liste
    Par Jérémy VAUTIER dans le forum Access
    Réponses: 3
    Dernier message: 17/10/2005, 14h09
  4. Erreur de maj d'une table !
    Par smail21 dans le forum Bases de données
    Réponses: 6
    Dernier message: 30/08/2005, 15h18
  5. MAJ d'une table sous SQL Server par insertion
    Par keish dans le forum Langage SQL
    Réponses: 6
    Dernier message: 11/06/2003, 16h23

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo