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

PL/SQL Oracle Discussion :

[10g] différence entre DBMS_REFRESH et DBMS_MVIEW


Sujet :

PL/SQL Oracle

  1. #1
    Membre régulier
    Homme Profil pro
    responsable technique
    Inscrit en
    Novembre 2002
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : responsable technique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 100
    Points : 89
    Points
    89
    Par défaut [10g] différence entre DBMS_REFRESH et DBMS_MVIEW
    Bonjour,

    J'ai un certain nombre de vues matérialisées d'un même schéma que je dois rafraichir en même temps (on rafraichit soit toutes les vues, soit aucune si erreur).
    J'aimerais savoir quelle est la différence entre les méthodes suivantes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DBMS_MVIEW.REFRESH_ALL_MVIEWS (rafraichit ttes les vues du schéma)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DBMS_MVIEW.REFRESH (en passant en parametre la liste des vues a rafraichir)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    DBMS_REFRESH.MAKE (pour créer un groupe contenant les vues a rafraichir)
    DBMS_REFRESH.REFRESH (pour rafraichir les vues du groupe)
    Je précise que toutes les vues matérialisées sont en refresh "FAST"

    Merci d'avance

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    c'est pareil, DBMS_MVIEW existe toujours pour garantir la compatibilité c'est tout

  3. #3
    Membre régulier
    Homme Profil pro
    responsable technique
    Inscrit en
    Novembre 2002
    Messages
    100
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : responsable technique

    Informations forums :
    Inscription : Novembre 2002
    Messages : 100
    Points : 89
    Points
    89
    Par défaut
    Citation Envoyé par orafrance Voir le message
    c'est pareil, DBMS_MVIEW existe toujours pour garantir la compatibilité c'est tout
    Merci pour votre réponse. Quelle méthode me conseillez-vous ? Y'en a-t-il une meilleure que les autres en termes de performance ?

    Sinon, j'ai essayé les 3 méthodes, une seule fonctionne et je ne vois pas pourquoi j'ai des erreurs sur les autres :

    - 1ere méthode avec DBMS_MVIEW.REFRESH :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    BEGIN DBMS_MVIEW.REFRESH (
       LIST                 => 'DOSSIER, OPERATION',
       METHOD               => 'F',
       REFRESH_AFTER_ERRORS => FALSE,
       ATOMIC_REFRESH       => TRUE,
       NESTED               => FALSE);
    END;
    /
    Cela fonctionne.

    - 2eme méthode avec DBMS_MVIEW.REFRESH_ALL_MVIEWS :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    BEGIN DBMS_MVIEW.REFRESH_ALL_MVIEWS (
       METHOD               => 'F',
       REFRESH_AFTER_ERRORS => FALSE,
       ATOMIC_REFRESH       => TRUE);
    END;
    /
    j'ai l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ORA-06550: Ligne 1, colonne 7 :
    PLS-00306: numéro ou types d'arguments erronés dans appel à 'REFRESH_ALL_MVIEWS'
    ORA-06550: Ligne 1, colonne 7 :
    PL/SQL: Statement ignored
    - 3eme méthode avec DBMS_REFRESH.MAKE + DBMS_REFRESH.REFRESH :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    -- creation du groupe de rafraichissement
    BEGIN DBMS_REFRESH.MAKE (
       NAME                 => 'REFRESH_GROUP',
       LIST                 => 'DOSSIER, OPERATION',
       REFRESH_AFTER_ERRORS => FALSE);
    END;
    /
    -- rafraichissement du groupe
    BEGIN DBMS_REFRESH.REFRESH('REFRESH_GROUP');
    END;
    /
    j'ai l'erreur suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    ORA-06550: Ligne 1, colonne 7 :
    PLS-00306: numéro ou types d'arguments erronés dans appel à 'MAKE'
    ORA-06550: Ligne 1, colonne 7 :
    PL/SQL: Statement ignored
    Je ne vois pourquoi j'ai des erreurs sur 2 des 3 méthodes

    Pouvez-vous m'éclairer ? Merci

Discussions similaires

  1. Grosse différence entre 9i et 10g ?
    Par Darcynette dans le forum SQL
    Réponses: 7
    Dernier message: 25/12/2007, 16h31
  2. Réponses: 4
    Dernier message: 06/09/2006, 12h53
  3. Réponses: 2
    Dernier message: 09/05/2006, 18h30
  4. Différence entre une version 8i et une 10G
    Par psyche dans le forum Oracle
    Réponses: 3
    Dernier message: 07/04/2006, 10h44
  5. Réponses: 6
    Dernier message: 31/08/2005, 17h27

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