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 :

Optimisation d'un requête


Sujet :

SQL Oracle

  1. #1
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Maroc

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2014
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Optimisation d'un requête
    Bonjour,

    Je suis sous Oracle 9i et je souhaite optimiser le temps de réponse de cette requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    SELECT   /* Array Size 500 - Exec 1*/ 
                                1                      FROM   v_vignette_consomme_carb
    where TYPECOUP = 'G'
    And CODTYPAC = NVL ('4', UID)
    And ANNEVIGN = '2013'
    And ALFADEBU = 'AK'
                               and ((numevign BETWEEN 'C13GAK980001'
                                                          AND 'C13GAK980100')
                                         OR (numevigf BETWEEN 'C13GAK980001'
                                                          AND 'C13GAK980100')
                                         OR (    numevign <=  'C13GAK980001'
                                             AND numevigf >= 'C13GAK980001')
                                         OR (    numevign <= 'C13GAK980100'
                                             AND numevigf >= 'C13GAK980100')
                                             )

    En sachant que v_vignette_consomme_carb est une vue qui lie 4 tables avec des union all.

    Merci bcp pour votre aide.

    Cordialement

  2. #2
    Modérateur
    Avatar de al1_24
    Homme Profil pro
    Retraité
    Inscrit en
    Mai 2002
    Messages
    9 111
    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 111
    Points : 28 466
    Points
    28 466
    Par défaut
    Je n'ai pas été plus loin mais NVL ('4', UID) retournera toujours '4' puisque '4' ne peut être NULL

  3. #3
    Candidat au Club
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2014
    Messages
    3
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 45
    Localisation : Maroc

    Informations professionnelles :
    Activité : Administrateur de base de données
    Secteur : Transports

    Informations forums :
    Inscription : Décembre 2014
    Messages : 3
    Points : 3
    Points
    3
    Par défaut Optimisation de requête
    Bonjour,

    Mon objectif est de chercher une optimisation de la requête pour détecter rapidement s'il y a un chevauchement ou pas des intervalles.

    Cordialement,

  4. #4
    McM
    McM est déconnecté
    Expert éminent

    Homme Profil pro
    Développeur Oracle
    Inscrit en
    Juillet 2003
    Messages
    4 580
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur Oracle

    Informations forums :
    Inscription : Juillet 2003
    Messages : 4 580
    Points : 7 740
    Points
    7 740
    Billets dans le blog
    4
    Par défaut
    J'ai fait un petit dessin pour schématiser les conditions OR.. je ne vois pas ce que tu veux faire (surtout après avoir lu ta phrase sur le chevauchement de plage)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
      01   100
    ...|NNNN|...
    ...|FFFF|...
    NNN|FFFF|FFF
    NNN|NNNN|FFF
    Au final c'est équivalent à
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
      01   100
    ...|NNNN|...
    ...|FFFF|...
    NNN......FFF
    Donc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    (numevign BETWEEN 'C13GAK980001' AND 'C13GAK980100')
    OR (numevigf BETWEEN 'C13GAK980001' AND 'C13GAK980100')
    OR (numevign <  'C13GAK980001' AND numevigf > 'C13GAK980100')
    Mais ça ne va pas optimiser grandement les temps de réponse.
    Il faut voir l'explain plan de la requête complète, voir les index, etc...

Discussions similaires

  1. Optimisation d'une requête
    Par Louis-Guillaume Morand dans le forum MS SQL Server
    Réponses: 5
    Dernier message: 20/12/2005, 18h21
  2. Optimisation d'une requête d'insertion
    Par fdraven dans le forum Oracle
    Réponses: 15
    Dernier message: 01/12/2005, 14h00
  3. Optimisation d'une requête patchwork
    Par ARRG dans le forum Langage SQL
    Réponses: 1
    Dernier message: 11/09/2005, 15h23
  4. optimisation d'une requête avec jointure
    Par champijulie dans le forum PostgreSQL
    Réponses: 8
    Dernier message: 07/07/2005, 09h45
  5. [DB2] Optimisation d'une requête
    Par ahoyeau dans le forum DB2
    Réponses: 7
    Dernier message: 11/03/2005, 17h54

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