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 :

Sélection très longue sur une vue


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 825
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 825
    Par défaut Sélection très longue sur une vue
    Bonjour à tous,

    J'ai créé une vue V_MA_VIEW qui possède 3 champs : C1, C2, C3.

    Lorsque je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT * FROM V_MA_VIEW
    J'obtiens tous les enregistrements en 0,7 secondes

    Si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT * FROM V_MA_VIEW
    WHERE C1 = 1
    J'obtiens tous les enregistrements (213031) en 0,7 secondes

    Si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT * FROM V_MA_VIEW
    WHERE C2 = 1
    J'obtiens tous les enregistrements (1) en 0,9 secondes

    Et si je fais
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT * FROM V_MA_VIEW
    WHERE C3 = 1
    J'ai arrêté au bout de 10 minutes de grattage...

    Et même
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    SELECT count(*) FROM V_MA_VIEW
    WHERE C3 = 1
    N'en fini pas...

    Qu'est-ce qu'il a ce C3 pour être aussi long ?

    A savoir que C1, C2 et C3 sont des NUMBER(10) et que les trois champs sont tous issus d'une même table, la vue ne faisant qu'appliquer un filtre.


    Pouvez-vous m'aider ?

    Merci

  2. #2
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    Votre table aurait-elle un index sur les champ C1 et C2 mais pas C3 ?

  3. #3
    Membre éprouvé
    Profil pro
    Inscrit en
    Février 2004
    Messages
    1 825
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2004
    Messages : 1 825
    Par défaut
    Heu au contraire, C3 a un index, et pas les autres...

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    sans explain plan point de salut

  5. #5
    Scorpi0
    Invité(e)
    Par défaut
    Citation Envoyé par mister3957 Voir le message
    Heu au contraire, C3 a un index, et pas les autres...
    Je parie que les stats de l'index sur C3 sont pas à jour, du coup il utilise l'index au lieu de faire un full scan certainement plus judicieux vu les temps de réponse de tes requêtes.

    Met à jour les stats ça devrait aller mieux.

  6. #6
    Membre Expert Avatar de pacmann
    Homme Profil pro
    Consulté Oracle
    Inscrit en
    Juin 2004
    Messages
    1 626
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Consulté Oracle
    Secteur : Distribution

    Informations forums :
    Inscription : Juin 2004
    Messages : 1 626
    Par défaut
    Salut !

    Citation Envoyé par Scorpi0 Voir le message
    un full scan certainement plus judicieux vu les temps de réponse de tes requêtes.
    Mais dans ce cas, le count(*) ne devrait pas être si long, non ?
    (genre avec index FFS sur C3)

    Sinon, complètement d'accord avec Orafrance...

  7. #7
    Membre Expert Avatar de fatsora
    Profil pro
    Inscrit en
    Février 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 1 103
    Par défaut
    Bonjour,

    ou si les stats sont a jour, faire un rebuild d'index ...

Discussions similaires

  1. Comment écrire une ligne de code très longue sur plusieurs lignes
    Par Vincent32 dans le forum Macros et VBA Excel
    Réponses: 7
    Dernier message: 06/11/2018, 09h28
  2. GROUP BY sur une vue très lent
    Par johnalias110 dans le forum Requêtes
    Réponses: 6
    Dernier message: 01/12/2011, 13h55
  3. Requête très longue sur une table très simple
    Par kragenskul dans le forum Requêtes
    Réponses: 6
    Dernier message: 16/06/2009, 14h28
  4. Temps d'execution d'un select sur une vue
    Par rosewood dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 21/02/2005, 16h06
  5. delete sur une vue: rule
    Par Bouboubou dans le forum PostgreSQL
    Réponses: 8
    Dernier message: 18/05/2004, 18h58

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