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 :

Comparaison de requêtes Oracle


Sujet :

SQL Oracle

Vue hybride

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

    Informations forums :
    Inscription : Mars 2007
    Messages : 44
    Par défaut Comparaison de requêtes Oracle
    Bonjour,
    voilà, j'ai une question qui peut sembler bête mais je pense qu'il est important de se la poser ;
    imaginons que je veuille extraire 10 champs d'une table pour une date et un numéro donnés ; est-il plus rapide, moins rapide ou est-ce pareil de faire
    un select des 10 champs ou bien 2 "select" de 5 champs chacun?

    Ma question est importante dans le sens où je fais ça sous un programme en java et je gère des paquets de données issus de requêtes et qui ne serviront pas à la même chose ; donc soit je les extrais tous en une fois et je les sépare ensuite, soit j'extrais 5 champs d'un côté puis 5 de l'autre (séparation au niveau de la requête), sachant que je fais un traitement sur 5000 lignes pour une date donnée (et que je m'inquiète du temps de traitement).
    Merci d'avance!

  2. #2
    Membre Expert Avatar de scheu
    Inscrit en
    Juin 2007
    Messages
    1 506
    Détails du profil
    Informations forums :
    Inscription : Juin 2007
    Messages : 1 506
    Par défaut
    Niveau purement Oracle, c'est plus rapide de faire une seule requête sur la base et de séparer ensuite le résultat par paquets côté applicatif
    La théorie, c'est quand on sait tout mais que rien ne fonctionne.
    La pratique, c'est quand tout fonctionne mais que personne ne sait pourquoi.
    Ici, nous avons réuni théorie et pratique : Rien ne fonctionne ... et personne ne sait pourquoi !

    Réplication de base avec Postgresql : http://scheu.developpez.com/tutoriel.../log-shipping/

  3. #3
    Expert confirmé
    Avatar de laurentschneider
    Homme Profil pro
    Administrateur de base de données
    Inscrit en
    Décembre 2005
    Messages
    2 944
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

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

    Informations forums :
    Inscription : Décembre 2005
    Messages : 2 944
    Par défaut
    Citation Envoyé par yoyostras Voir le message
    est-il plus rapide, moins rapide ou est-ce pareil de faire un select des 10 champs ou bien 2 "select" de 5 champs chacun?
    si tu sélectionnes la table 2 fois, ça sera 2 fois plus long non?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    CREATE TABLE T(X1 NUMBER,X2 NUMBER,X3 NUMBER,X4 NUMBER,X5 NUMBER,X6 NUMBER,
      X7 NUMBER,X8 NUMBER,X9 NUMBER,X10 NUMBER);
    BEGIN
      FOR I IN 1..5000 LOOP
        INSERT INTO T(X1,X2,X3,X4,X5,X6,X7,X8,X9,X10) VALUES 
          (DBMS_RANDOM.VALUE,DBMS_RANDOM.VALUE,DBMS_RANDOM.VALUE,
          DBMS_RANDOM.VALUE,DBMS_RANDOM.VALUE,DBMS_RANDOM.VALUE,
          DBMS_RANDOM.VALUE,DBMS_RANDOM.VALUE,DBMS_RANDOM.VALUE,
          DBMS_RANDOM.VALUE);
      END LOOP;
    END;
    /
    COMMIT;
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SQL> SELECT X1,X2,X3,X4,X5 FROM T;
            X1         X2         X3         X4         X5
    ---------- ---------- ---------- ---------- ----------
    .262558203 .371666144 .097022225 .562563118 .256422295
    .765993816 .887341813   .2865078 .132309077 .039195607
    ...
     .01432536 .405797439 .788957101 .418826074 .490824479
     
    5000 rows selected.
     
    Elapsed: 00:00:00.65
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    SQL> SELECT X6,X7,X8,X9,X10 FROM T;
            X6         X7         X8         X9        X10
    ---------- ---------- ---------- ---------- ----------
    .460161169 .504529875 .177034055 .854865381 .507347808
    .204726616 .567287151 .420726127   .3696838  .76418999
    .429492681 .433624135 .492088837 .793151521 .989617494
    ...
     
    5000 rows selected.
     
    Elapsed: 00:00:00.50
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    SQL> SELECT X1,X2,X3,X4,X5,X6,X7,X8,X9,X10 FROM T;
            X1         X2         X3         X4         X5         X6         X7         X8         X9        X10
    ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ---------- ----------
    .262558203 .371666144 .097022225 .562563118 .256422295 .460161169 .504529875 .177034055 .854865381 .507347808
    .765993816 .887341813   .2865078 .132309077 .039195607 .204726616 .567287151 .420726127   .3696838  .76418999
    ...
     
    5000 rows selected.
     
    Elapsed: 00:00:00.68

Discussions similaires

  1. Requêtes Oracle et calcul de date
    Par bobic dans le forum Oracle
    Réponses: 7
    Dernier message: 20/04/2006, 13h58
  2. Requête oracle
    Par Requin15 dans le forum Oracle
    Réponses: 1
    Dernier message: 28/03/2006, 09h53
  3. Requête oracle : update et sélection...
    Par Requin15 dans le forum Langage SQL
    Réponses: 10
    Dernier message: 27/03/2006, 19h32
  4. Traduire requête oracle vers access
    Par petitmic dans le forum Access
    Réponses: 1
    Dernier message: 27/09/2005, 18h21
  5. Voir les dernières requête Oracle
    Par newchurch dans le forum Oracle
    Réponses: 4
    Dernier message: 11/04/2005, 23h41

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