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 :

[Question] Raffraichissement de MV


Sujet :

Oracle

  1. #1
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 6
    Points : 1
    Points
    1
    Par défaut [Question] Raffraichissement de MV
    Bonjour,

    Je viens poser une petite question ici, car j'ai pas trouvé sur le net (peut être pas su chercher) et que vous avez l'air aussi sympa que connaisseurs la réponse à un problème qu'on ma demande de résoudre...
    (en fait je suis apprentit et ca vient d'un collègue, qui n'a pas le temps de chercher de lui même) :

    Existe il un processus permettant, lorsqu'une première MV vient de finir de se raffraichir/recalculer, de lancer automatiquement le raffraichissement d'une seconde MV qui s'appuie sur la première.

    Actuellement il utilise un décalage d'une heure entre le début de raffraichissement de la première MV et le raffraichissement de la MV qui en dépend.

    Je veux juste savoir si ce processus existe deja sous oracle (il ne veut pas programmer pour cause de manque de portabilité) et ou le trouver/comment le mettre ne place.

    Merci d'avance!

    Ps: désolé si ca n'est pas très clair mais je n'ai pas encore assez avancé dans mes cours oracle pour reformuler plus clairement ca demande.

  2. #2
    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
    Points : 3 798
    Points
    3 798
    Par défaut
    Bonjour que veut dire MV ?

  3. #3
    Membre expert
    Avatar de bouyao
    Inscrit en
    Janvier 2005
    Messages
    1 778
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 778
    Points : 3 033
    Points
    3 033
    Par défaut
    Je pense Materialized View

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    Bonjour et bienvenue

    J'imagine si la deuxiéme MV est basée sur la 1° un refresh ON COMMIT me parait pas mal, sinon, peut-être avec un trigger sur la 1° MV qui déclenche le refresh de la 2°. Je ne suis pas particulièrement calé en réplication alors il doit y avoir moyen de faire mieux

  5. #5
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par bouyao
    Je pense Materialized View
    Ouip, j'ai vu que vous l'utilisiez ici (j'ai un peu cherché avant de poster) alors je me suis dit que si vous le connaissiez ca vous faciliterai la lecture... (vu le nombre de fois ou je l'ai sortit)

    Fred_D: je vais lui proposer la solution et je raporterai ce qu'il en dit ensuite

    En tout cas merci

    PS: je suis content d'avoir été compris, ca veut dire que j'ai capté à peu prêt ce qu'il voulait me dire ^^

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    N'hésite pas à nous faire un retour cela ne pourra que nous faire progresser

  7. #7
    Membre actif Avatar de DrHelmut
    Homme Profil pro
    Software craftsman - JS, Java...
    Inscrit en
    Octobre 2005
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Software craftsman - JS, Java...
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 116
    Points : 241
    Points
    241
    Par défaut
    Hello !

    Je profite de ce post pour vous poser une colle, toujours sur les MV/Snapshots:

    Apprenti tout comme Sura, je fait du Oracle (8) depuis 3 jours.
    J'ai un gros problème, en contradiction avec la doc :

    Je tente de créer un snapshot de type :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CREATE SNAPSHOT SNAP_xxx
    	REFRESH FAST
    	ON COMMIT	  
    	AS SELECT * FROM xxxx_xx;
    Et là toad me retourne :
    ORA-12013: updatable snapshots must be simple enough to do fast refresh
    Vous êtes bien d'accord qu'il y a un pépin, là ?
    En quoi ma requête n'est-elle pas assez simple ? ça déconne grave !

    J'ai vu rapidement sur les forums anglais qu'il y aurait peut-être un fichier de config à changer, mais je ne trouve rien de précis...

    Please help me!!!

  8. #8
    Membre éclairé

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2003
    Messages
    701
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 701
    Points : 710
    Points
    710
    Billets dans le blog
    1
    Par défaut
    bonjour,
    l' option FAST n' est autorisé que s' il existe
    une "MATERIALIZED VIEW LOG" sur la table .
    est-ce le cas ?

    cdlt

  9. #9
    Membre expert
    Avatar de bouyao
    Inscrit en
    Janvier 2005
    Messages
    1 778
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 778
    Points : 3 033
    Points
    3 033
    Par défaut
    AS SELECT * FROM xxxx_xx;
    Qu'es ce qu'il y a après FROM ? c.a.d xxx_xxx
    est ce qu'il y'a un autres SELECT ?

  10. #10
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Citation Envoyé par Fred_D
    Bonjour et bienvenue

    J'imagine si la deuxiéme MV est basée sur la 1° un refresh ON COMMIT me parait pas mal, sinon, peut-être avec un trigger sur la 1° MV qui déclenche le refresh de la 2°. Je ne suis pas particulièrement calé en réplication alors il doit y avoir moyen de faire mieux
    Des news, je viens d'en discuter avec lui :

    Pour le refresh ON COMMIT : impossible la MV 1 est basée sur des tables.

    Pour le trigger : possible mais comme ca ne serait pas portable il veut éviter car je suppose que tout ca va évoluer, et puis il y a aussi une 3eme MV qui dépends de la 2nde...

    Il cherche plutot un paramètre de groupe ou de la MV, une fonction qui permettrai de faire des raffraichissements en cascade des MV en commencant par la 1ere mais que les suivantes ne commencent que lorsque la précédente à terminer, pour éviter les erreurs.

    Donc je vais continuer à chercher sur le net, et si vous avez des idées, faites la moi partager

    Ps: en tant qu'apprentit j'ai aussi une semaine de cours, peut être mes profs pourront m'aider ^^

  11. #11
    Membre éclairé

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2003
    Messages
    701
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 701
    Points : 710
    Points
    710
    Billets dans le blog
    1
    Par défaut
    en général quand on a plusieurs mv a créer dépendantes les unes des autres, on utilise la replication d' oracle dans lequel il existe la notion
    de groupe de refresh ( package dbms_refresh) .
    dans ce groupe de refresh on met des objets ( vues matérielles)
    qui sont toutes rafraichies à une date voulue .

    peut-être est-ce un cas à envisager pour vous ?

    cdlt

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    Citation Envoyé par DrHelmut
    Et là toad me retourne :
    ORA-12013: updatable snapshots must be simple enough to do fast refresh
    Il est impossible de faire du fast refresh sur une requête complexe, par exemple s'il n'y a pas de PK.

  13. #13
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Humm, d'apres ce que je viens de voir ca doit actuellement marché comme cela.

    Mais comme tout ca est raffraichit pendant une durée indéterminée (et variable) les 3 niveaux de MV en dépendances sont raffraichient à 1 heure de décalage par niveau. (la 1ere à 4h du mat, la seconde 5h, ect et ceci tous les jours)

    Mais si jamais le refresh dépassait une heure >> des erreurs car le niveau suivant commencerait à se raffraichir à partir d'une MV incomplète, et si c'est plus court le temps est perdu.

    D'ou l'interet d'avoir un paramètre qui les déclencherait automatiquement les un à la suite des autres une fois la MV précédentes dans la chaine finie de se raffraichir.

    A moins que la première soit une date voulue et que les autres en "découlent" les unes à la suite des autres si c'est ca que tu veux dire c'est ce qu'il me faut.

    Enfin ca me parait être intéressant de creuser la question, vais me renseigner plus avant ^^

  14. #14
    Membre éclairé

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2003
    Messages
    701
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 701
    Points : 710
    Points
    710
    Billets dans le blog
    1
    Par défaut
    par contre je ne suis pas sur qu' on puisse créer un groupe de refresh
    sans installer la replication complétement ...

  15. #15
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Et dans ce groupe tout ce fait en même temps ?

  16. #16
    Membre éclairé

    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Mars 2003
    Messages
    701
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Hauts de Seine (Île de France)

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Service public

    Informations forums :
    Inscription : Mars 2003
    Messages : 701
    Points : 710
    Points
    710
    Billets dans le blog
    1
    Par défaut
    oui
    par contre , il faudra éplucher la doc car je ne garantis pas l' ordre
    de rafraichissement des vues .
    a vérifier quand même que ces groupes sooient utilisables en dehors de la replication ...

  17. #17
    Nouveau Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2005
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2005
    Messages : 6
    Points : 1
    Points
    1
    Par défaut
    Bien je vais "éplucher la doc" ^^

    Merci pour l'info

    ps : si je trouve quoi que ce soit je le posterai ici en suite

  18. #18
    Membre actif Avatar de DrHelmut
    Homme Profil pro
    Software craftsman - JS, Java...
    Inscrit en
    Octobre 2005
    Messages
    116
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Software craftsman - JS, Java...
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2005
    Messages : 116
    Points : 241
    Points
    241
    Par défaut
    Citation Envoyé par Fred_D
    Citation Envoyé par DrHelmut
    Et là toad me retourne :
    ORA-12013: updatable snapshots must be simple enough to do fast refresh
    Il est impossible de faire du fast refresh sur une requête complexe, par exemple s'il n'y a pas de PK.
    j'ai crée un snapshot log sur ma table "maître"
    la requete du snapshot est simple, pas de closes, juste select * from ma_table !

    par contre, la clé primaire de la table maître est sur 4 champs... je teste de suite sur une table avec une clé primaire tenant sur un seul champ !

    SuRa, désolé de venir polluer ton post, mais ça évite des redondances ^^

    [EDIT] Sorry, j'ai - a priori - trouvé : c'est une erreur de newbie !
    Il s'avère que le gestionnaire d'erreur d'Oracle est assez pourri : le problème venait pas de la requête de création du snapshot, il suffisait de préciser le schéma utilisateur devant (select * from mon_schema.ma_table)

Discussions similaires

  1. Réponses: 2
    Dernier message: 11/08/2002, 21h27
  2. Divers questions
    Par Freakazoid dans le forum DirectX
    Réponses: 2
    Dernier message: 06/08/2002, 21h57
  3. question sur les message box !
    Par krown dans le forum Langage
    Réponses: 7
    Dernier message: 02/08/2002, 16h11
  4. Question de faisabilité
    Par lisarasu dans le forum CORBA
    Réponses: 3
    Dernier message: 14/05/2002, 11h26
  5. [HyperFile] 2 questions de débutant
    Par khan dans le forum HyperFileSQL
    Réponses: 2
    Dernier message: 29/04/2002, 23h18

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