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 :

MV (Materialized View)


Sujet :

SQL Oracle

  1. #1
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 34
    Points : 23
    Points
    23
    Par défaut MV (Materialized View)
    Bonjour,

    Je dois créer une MV avec la clause NEVER REFRESH.

    Il faut attendre chaque semaine la fin de l'importation d'une table (sous SQL loader) pour rafraichir le contenu de la MV.

    Quel est l'ordre à passer (sous une stored procedure exécutée une fois par semaine) pour obtenir le rafraichissement de cette MV SVP ?

    Peut-on y ajouter une PK et des index ?

  2. #2
    Expert éminent
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 821
    Points : 6 443
    Points
    6 443
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    dbms_mview.refresh
    Cordialement,
    Franck.
    Franck Pachot - Developer Advocate Yugabyte 🚀 Base de Données distribuée, open source, compatible PostgreSQL
    🗣 twitter: @FranckPachot - 📝 blog: blog.pachot.net - 🎧 podcast en français : https://anchor.fm/franckpachot

  3. #3
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 34
    Points : 23
    Points
    23
    Par défaut
    Merci.

    J'envisage une autre situation. Ma MV se base sur une table T.

    Si T subit un Truncate, comment faut-il paramétrer la MV pour qu'elle soit effacée vite et bien ? (qqchose comme un drop et un create)

    Si T se remplit via SQL Loader (donc avec des commits réguliers), comment paramétrer la MV correctement ?

  4. #4
    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
    Peut-être que vous pouvez commencer par expliquer ce que vous voulez accomplir. Vous est confus dans vos propos et vous ne maitrisez pas bien les concepts que vous essayez d’utiliser : table temporaire, vue matérialisée, niveau d’isolation des transactions, etc.

  5. #5
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 34
    Points : 23
    Points
    23
    Par défaut
    D'accord. C'est vrai que je n'ai pas fait beaucoup de MV.

    Actuellement, je bâtis une table T de 10 M de lignes via SQL Loader.
    Puis je bâtis une table T2 elle aussi de 10 M de lignes en se basant dur T.
    Le tout prend 4 heures, soit 1 heure pour T et 3 heures pour T2. L'opération se passe toutes les semaines.

    J'ai envie de faire la même chose en remplaçant T2 par une MV, car j'espère que cette MV se remplira en même temps que T, et ainsi gagner du temps.

    Donc chaque semaine, il faudra que la MV s'efface au début du transfert fait par SQL Loader, puis se charge en même temps que T se remplit.

    J'aimerais savoir comment paramétrer correctement cette MV ou au moins l'utiliser convenablement.

    Merci de votre attention.

  6. #6
    Expert éminent
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 821
    Points : 6 443
    Points
    6 443
    Billets dans le blog
    1
    Par défaut
    Bonjour,
    Non, ce n'est pas la bonne solution. Une MV ne sera pas plus rapide.
    Par contre en créant T en table externe, tu peux faire le chargement en même temps que tu l'interroge. Et tu peux aussi faire du parallel query (si enterprise edition)
    Cordialement,
    Franck.
    Franck Pachot - Developer Advocate Yugabyte 🚀 Base de Données distribuée, open source, compatible PostgreSQL
    🗣 twitter: @FranckPachot - 📝 blog: blog.pachot.net - 🎧 podcast en français : https://anchor.fm/franckpachot

  7. #7
    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
    Donc vos données primaires sont dans des fichiers. A ce que je comprends ces fichiers sont chargés dans une table de travail T1. Ensuite un traitement transforme ces données pour générer la table T2.

    Première question : est-ce que les données de la table T1 servent encore à quelque chose une fois que la table T2 a été générée.

    Deuxième question : est-ce que la table T2 est issue seulement des données de la table T1 ou elle se base sur des données des autres tables.

    Remarque : pour améliorer ce traitement vous devez essayer d’améliorer le chargement de la table T1 si possible mais cela à seulement 25% de poids dans le traitement. Il sera plus efficace de concentres vos efforts sur la deuxième partie qui prennent actuellement 75% de la totalité du traitement.

  8. #8
    Membre à l'essai
    Homme Profil pro
    Inscrit en
    Mai 2011
    Messages
    34
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Côtes d'Armor (Bretagne)

    Informations professionnelles :
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Mai 2011
    Messages : 34
    Points : 23
    Points
    23
    Par défaut
    Bonnes questions.

    Remarques liminaires :
    T1 ne dépend que d’un seul fichier au format CSV (un fichier plat).
    Et T2 est un filtre et une normalisation la table T1. Un tiers des lignes est retiré, une quinzaine de champs sont scindés, créés ou remplacés par des id.

    Question 1 :
    J’ai besoin de T1 aussi pour voir si de nouveaux id dans différents champs sont apparus. Ici T1 sert 3 fois. T2 sert environ 50 fois.

    Question 2 :
    T2 dépend en majorité de T1, mais aussi de différentes autres tables qui servent à la normalisation (des textes qui sont remplacés par des id).

Discussions similaires

  1. [9i] CREATE MATERIALIZED VIEW toutes les heures sauf le WE
    Par Débéa dans le forum Administration
    Réponses: 3
    Dernier message: 20/03/2007, 15h42
  2. Materialized view + Indexs + Contraintes
    Par hair_peace dans le forum Oracle
    Réponses: 4
    Dernier message: 05/09/2006, 17h57
  3. snapshot or materialized view
    Par sygale dans le forum Administration
    Réponses: 11
    Dernier message: 12/10/2004, 17h07
  4. MATERIALIZED VIEW <> SNAPSHOT
    Par sygale dans le forum Administration
    Réponses: 3
    Dernier message: 18/06/2004, 11h14
  5. SQL Dynamique - Materialized view
    Par Simeans2004 dans le forum SQL
    Réponses: 15
    Dernier message: 10/06/2004, 17h56

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