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

SQL Oracle Discussion :

Vue matérialisée : quelles sont les conditions pour un REFRESH FAST ?


Sujet :

SQL Oracle

  1. #1
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 080
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Retraité
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2002
    Messages : 9 080
    Points : 30 786
    Points
    30 786
    Par défaut Vue matérialisée : quelles sont les conditions pour un REFRESH FAST ?
    Bonjour,

    Je pensais utiliser des vues matérialisées pour améliorer les performances de mes traitements.

    Mais je me rends compte que la mise à jour de ces vues matérialiseés est parfois plus longue que l'exécution de la requête en elle-même.
    Je comptais sur l'option REFRESH FAST pour ne mettre à jour que les lignes modifiées, mais tous mes essais sont refusés avec le message
    ORA-12015: cannot create a fast refresh materialized view from a complex query
    Apparemment, sont exclues de cette possibilité de rafraichissement rapide les requêtes comportant une jointure ou un regroupement
    Quelqu'un pourrait-il me confirmer cette information... ou me donner les pistes pour contourner le problème ?
    Modérateur Langage SQL
    Règles du forum Langage SQL à lire par tous, N'hésitez pas à consulter les cours SQL
    N'oubliez pas le bouton et pensez aux balises
    [code]
    Si une réponse vous a aidé à résoudre votre problème, n'oubliez pas de voter pour elle en cliquant sur
    Aide-toi et le forum t'aidera : Un problème exposé sans mentionner les tentatives de résolution infructueuses peut laisser supposer que le posteur attend qu'on fasse son travail à sa place... et ne donne pas envie d'y répondre.

  2. #2
    Expert éminent sénior Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Points : 11 252
    Points
    11 252
    Par défaut
    Comme tout autre mécanisme il y a des effets de bord. La documentation à consulter est "Data Warehousing Guide" qui explique dans les détails dans quelles conditions ça marche.
    Par la suite toute dépende de quel est votre problème d'abord. Vous parlez de performance: parfois les vues matérialisées sont une solution parfois non.

  3. #3
    Candidat au Club
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Février 2013
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Isère (Rhône Alpes)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Février 2013
    Messages : 2
    Points : 3
    Points
    3
    Par défaut Quelques ouvertures issues d'une expérience en 11g
    Le guide SQL d'Oracle indique des restrictions (NOT IN, UNION, SYSDATE...), mais le Datawarehousing Guide suggère que si toutes les règles ne sont pas respectées, le moteur Oracle essaie tout de même de s'en sortir, éventuellement au prix de la performance... Et cela ouvre des perspectives.

    Voici un exemple de requête UNION qui peut aller dans une MV avec FAST REFRESH:

    (je remplace SELECT par s à cause d'un firewall un peu zêlé)
    s col1, col2, 1 as TAB_TYPE, rowid from TABLE1
    UNION ALL s col1, col2, 2 as TAB_TYPE, rowid from TABLE2

    Moyennant les divers autres pré-requis (PK, MV logs,...), cela marche, sans doute parce que l'ajout de la colonne TAB_TYPE évite le risque de doublon entre les sous-requêtes de l'UNION ALL.
    L'idée n'est même pas de moi, mais j'aurais gagné du temps si je l'avais trouvée dans un forum...

Discussions similaires

  1. Réponses: 10
    Dernier message: 09/09/2010, 11h12
  2. Réponses: 1
    Dernier message: 27/02/2009, 09h32
  3. Quelles sont les étapes pour préparer la création d'un jeu ?
    Par Nicolas A. dans le forum Développement 2D, 3D et Jeux
    Réponses: 13
    Dernier message: 17/09/2008, 18h09
  4. Réponses: 2
    Dernier message: 08/07/2008, 10h50
  5. Quelles sont les études pour devenir développeur ?
    Par soft0613 dans le forum Etudes
    Réponses: 9
    Dernier message: 15/11/2007, 14h04

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