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 :

Vue indexée


Sujet :

Oracle

  1. #1
    Membre habitué

    Inscrit en
    Octobre 2002
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 139
    Points : 177
    Points
    177
    Par défaut Vue indexée
    Bonjour,

    je suis nouveau dans le monde oracle, et pour les besoins de modélisation d'une base je me demandais si on pouvait créer des vues qui seraient indexées.
    Un peu comme dans sql server (elles y existent avec une très forte contrainte d'intégrité).
    J'ai trouvé ce poste qui répond en partie à ma question. En disant que les vues utilisent les index des tables sur lesquelles elles sont basées.
    Ce que je voudrais savoir, c'est si on peut directement créer un index sur une vue.
    Merci d'avance de vos réponses.....

    Krest.

    Ps ne me demandez pas pour qu'elle version d'oracle c'est je ne le sais pas encore ........

  2. #2
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    La vue n'est qu'une représentation de la table ou des tables sous-jacentes. L'index sera donc créé sur la table qi constitue la vue.
    N'oubliez pas qu'une vue n'est qu'un ordre select stocké.

  3. #3
    Membre émérite Avatar de nuke_y
    Profil pro
    Indépendant en analyse de données
    Inscrit en
    Mai 2004
    Messages
    2 076
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant en analyse de données

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 076
    Points : 2 370
    Points
    2 370
    Par défaut
    J'imagine que ton problème c'est que tu veux que ta vue fasse une opération sur une donnée (concaténation, decode, substr) et que tu as peur que les index ne fonctionnent pas.

    Tu devras alors faire sur ta table un index basé sur la fonction que tu appliques (vers >= 9i seulement)

    Si par contre ton besoin c'est de faire un truc du genre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE VIEW AS Select T1.Champ1||' - '||T2.Champ2 from T1, T2 where T1.cle=T2.cle
    Et que tu voudrais pouvoir utiliser un index sur T1.Champ1||' - '||T2.Champ2 alors je crois que ce n'est pas possible avec une vue simple, il faudrait peut-être utiliser une vue matérialisée ou une table qui réunirait les 2 valeurs, selon la version d'Oracle utilisée.

  4. #4
    Membre habitué

    Inscrit en
    Octobre 2002
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 139
    Points : 177
    Points
    177
    Par défaut
    Salut,

    Merci pour les réponses.
    En recherchant ce qu'était une vue materialisée (je connaissais pas) je pense que c'est ce que je vais utiliser.
    Par contre je me pose une autre question : qu'elle est la différence entre une vue materialisée et un table? A part le fait que la vue peut-être recalculée régulièrement...

    Krest

  5. #5
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    A peu près la même différence entre une table et une vue.
    Une vue peut être multi-sources et filtrante.

  6. #6
    Membre émérite Avatar de nuke_y
    Profil pro
    Indépendant en analyse de données
    Inscrit en
    Mai 2004
    Messages
    2 076
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant en analyse de données

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 076
    Points : 2 370
    Points
    2 370
    Par défaut
    Est-ce qu'il n'y a pas tout un tas de chose qu'on peut faire pour une table et qu'on ne peut pas faire pour une vue matérialisée ? Genre une table tu peux insérer / updater / supprimer dedans de façon directe et simple, une vue matérialisée, est-ce que tu peux ?

  7. #7
    Expert éminent sénior
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Points : 11 862
    Points
    11 862
    Par défaut
    Effectivement, on ne peut pas insérer directement dans une VM. il faut la raffraîchir.

  8. #8
    Membre habitué

    Inscrit en
    Octobre 2002
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 139
    Points : 177
    Points
    177
    Par défaut
    Merci pour vos réponses. Je pense queje me servirai d'une VM

    krest

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

Discussions similaires

  1. Vue indexée ?
    Par xpander dans le forum Développement
    Réponses: 15
    Dernier message: 24/03/2010, 15h28
  2. Vue indexée et jointures externes
    Par elsuket dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 16/06/2009, 00h32
  3. Vue indexée sur deux bases de donnée
    Par mochi dans le forum Langage SQL
    Réponses: 3
    Dernier message: 09/12/2008, 13h20
  4. Vue indexée & Date ?
    Par xpander dans le forum Développement
    Réponses: 0
    Dernier message: 09/10/2008, 19h30
  5. [Debutant]Problème de création d'une vue indexée
    Par Le Pharaon dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 15/11/2006, 13h50

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