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 :

[Oracle 9] variable hôte dans une vue


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2006
    Messages
    45
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2006
    Messages : 45
    Par défaut [Oracle 9] variable hôte dans une vue
    Bonjour,

    J'ai deux vues A(X,Y,Z) et B(X,Y,Z), ainsi qu'une 3ème vue C(X,Y,Z), construite par :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CREATE OR REPLACE VIEW C(X,Y,Z) AS
    SELECT * FROM A
    MINUS
    SELECT * FROM B
    En pratique, je n'utilise la vue C que pour une valeur donnée :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    SELECT *
    FROM C
    WHERE X = 'val'
    Le problème, c'est que mes deux tables A et B sont énormes (plusieurs millions de données). Si je ne filtre que dans la vue C, je fais la soustraction de 2 tables énormes, puis je filtre le résultat obtenu.
    Alors que si je pouvais filtrer la table A, puis la table B, la soustraction serait immédiate.
    Y a t-il un moyen pour remonter la valeur (comme pour une variable hôte) jusqu'aux vues A et B, pour que la vue C soit optimisée ?

    Merci

  2. #2
    Membre Expert
    Inscrit en
    Avril 2006
    Messages
    1 024
    Détails du profil
    Informations forums :
    Inscription : Avril 2006
    Messages : 1 024
    Par défaut
    Citation Envoyé par doukem
    Alors que si je pouvais filtrer la table A, puis la table B, la soustraction serait immédiate.
    Y a t-il un moyen pour remonter la valeur (comme pour une variable hôte) jusqu'aux vues A et B, pour que la vue C soit optimisée ?

    Merci
    Regarde le plan d'exécution, c'est normalement déja la methode qu'il fait. Une vue n'est jamais qu'une requête stockée, l'optimiseur sais (enfin normalment) placer les filtres à l'interrieur de la vue. Il faut surtout que ta colonne X soit indexée sur tes 2 tables.

    [EDIT]

    Pardon, je viens de me rendre compte que c'était déja des vues (et non des tables). Il faut donc que tu soit exaustif et que tu donne aussi la définitions de ces 2 vue ainsi que le plan d'éxécution obtenu par ta requête.

    [/EDIT]

Discussions similaires

  1. Réponses: 4
    Dernier message: 25/11/2007, 21h12
  2. mailto et variable à interpreter dans une vue
    Par gobgob dans le forum Ruby on Rails
    Réponses: 3
    Dernier message: 07/08/2007, 09h29
  3. Ecrire du texte depuis une variable dans une vue
    Par Vlad_Oliv dans le forum MFC
    Réponses: 1
    Dernier message: 09/01/2007, 17h28
  4. Insérer dans une Vue ordonnée
    Par biroule dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 27/09/2004, 15h27
  5. [Struts][Oracle]Upload fichier word dans une base
    Par Maximil ian dans le forum Struts 1
    Réponses: 7
    Dernier message: 10/02/2004, 15h52

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