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 :

Select pour oracle


Sujet :

SQL Oracle

  1. #1
    Membre actif
    jARdinaJ - ArTista - PeinturA - PoéZie - mUzICa
    Inscrit en
    Septembre 2010
    Messages
    74
    Détails du profil
    Informations professionnelles :
    Activité : jARdinaJ - ArTista - PeinturA - PoéZie - mUzICa
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Septembre 2010
    Messages : 74
    Par défaut Select pour oracle
    bonjour,

    la commande de select pour oracle peut afficher jusqu'à combien de lignes ?

    par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from Table1 where  nb=2;
    sur cette table ca va donner 100 000 lignes.

    c'est sûre que çà va prendre un peut de temps. mais je me demande si cela ne perturbe pas le fonctionnement de oracle et est ce que il peut afficher tout cela ?

    si oui je vais alors rediriger les résultats dans un fichier .txt par exemple ?

    merci beaucoup

    merci
    lastmagik

  2. #2
    McM
    McM est déconnecté
    Expert confirmé

    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
    Billets dans le blog
    4
    Par défaut
    La base Oracle n'affiche rien, c'est l'outil que tu utilises qui va afficher le résultat du select.
    Tu peux rediriger la sortie du select (si tu l'exécute en sql+) vers un fichier texte en spoolant, mais ça c'est une fonctionnalité de sqlplus, ça reste de l'applicatif.

    Dernière chose, le select ne va pas écrouler ta base, les bases c'est fait pour ça.

  3. #3
    Membre actif
    jARdinaJ - ArTista - PeinturA - PoéZie - mUzICa
    Inscrit en
    Septembre 2010
    Messages
    74
    Détails du profil
    Informations professionnelles :
    Activité : jARdinaJ - ArTista - PeinturA - PoéZie - mUzICa
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Septembre 2010
    Messages : 74
    Par défaut suite de réponses
    merci beaucoup McM,

    mon oracle il est accessible à partir de mon unix

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
     
    SQL*Plus: Release 9.2.0.5.0 - Production on Wed Nov 23 13:14:16 2011
     
    Copyright (c) 1982, 2002, Oracle Corporation.  All rights reserved.
     
     
    Connected to:
    Oracle9i Enterprise Edition Release 9.2.0.5.0 - 64bit Production
    With the Partitioning option
    JServer Release 9.2.0.5.0 - Production
     
    SQL>
    alors je vais essayer de le rediriger vers un fichier.txt

    sincères mercis
    lastmagik

  4. #4
    Membre expérimenté Avatar de Ahmed AANGOUR
    Homme Profil pro
    DBA Oracle
    Inscrit en
    Janvier 2010
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : DBA Oracle

    Informations forums :
    Inscription : Janvier 2010
    Messages : 139
    Par défaut
    Si le nombre de lignes retournées vers l'application client est important, il est possible de jouer sur le row prefetching pour améliorer les perfs de la partie FETCH:
    http://ahmedaangour.blogspot.com/201...arraysize.html

  5. #5
    Membre actif
    jARdinaJ - ArTista - PeinturA - PoéZie - mUzICa
    Inscrit en
    Septembre 2010
    Messages
    74
    Détails du profil
    Informations professionnelles :
    Activité : jARdinaJ - ArTista - PeinturA - PoéZie - mUzICa
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Septembre 2010
    Messages : 74
    Par défaut portée de oracle
    bonjour à tous et à Ahmed,

    mon oracle peut combien de commandes qui sont exécutée successivement ?
    c'est à dire, par exemple :

    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
    16
    17
    18
     
    select SAM from PPM where IDENTIFY='3545';
    select SAM from PPM where IDENTIFY='3545';
    select SAM from PPM where IDENTIFY='3545';
    select SAM from PPM where IDENTIFY='3545';
    select SAM from PPM where IDENTIFY='3545';
    select SAM from PPM where IDENTIFY='3545';
                  :
                  :
                  :
                  :
                  :
                  :
                  :
                  :
                  :
    select SAM from PPM where IDENTIFY='3545';
    select SAM from PPM where IDENTIFY='3545';
    c'est à dire soit au total 200 000 commande sql qui sont éxécutées successivement.

    la question est : est ce que oracle peut éxécuter jusqu 'à combien de commande sql éxécutées successivement ?

    merci beaucoup et merci d'avance
    michaël

  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,

    En fait, je me pose surtout la question : pourquoi afficher 100000 lignes ?
    (Puisque cela ne semble pas être traité par un programme, je suppose que c'est pour visualisation)

    Si tu veux juste voir la gueule des données, tu peux jouter WHERE ROWNUM <= 100 pour avoir les 100 premières lignes par exemple... sinon, il faut trouver d'autre critères pour filtrer.

  7. #7
    Membre actif
    jARdinaJ - ArTista - PeinturA - PoéZie - mUzICa
    Inscrit en
    Septembre 2010
    Messages
    74
    Détails du profil
    Informations professionnelles :
    Activité : jARdinaJ - ArTista - PeinturA - PoéZie - mUzICa
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Septembre 2010
    Messages : 74
    Par défaut portée de oracle
    bonjour pacmann,

    en effet j'aimerai savoir si je fais 100 000 commandes sql sur oracle,
    oracle ne se plantera pas ou d'autres problemes n'apparraitrons pas ?

    en effet
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
     
     
    SELECT SAM FROM PPM WHERE IDENTIFY='22';
    SELECT SAM FROM PPM WHERE IDENTIFY='354';
    SELECT SAM FROM PPM WHERE IDENTIFY='7';
                      :
                      :
    SELECT SAM FROM PPM WHERE IDENTIFY='99461';
    SELECT SAM FROM PPM WHERE IDENTIFY='81';
                      :
                      :
    chaque IDENTIFY sont différents et chaque ont des informations différentes sur le champ SAM. c'est important de faire ces commandes sucssessivements pour savoir les SAM de chaque IDENTIFY.

    est ce que oracle peut supporter 100 000 commandes sql éxécutés succéssivements ?

    merci beaucoup et merci d'avance
    lastmagik

  8. #8
    Membre expérimenté Avatar de Ahmed AANGOUR
    Homme Profil pro
    DBA Oracle
    Inscrit en
    Janvier 2010
    Messages
    139
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France

    Informations professionnelles :
    Activité : DBA Oracle

    Informations forums :
    Inscription : Janvier 2010
    Messages : 139
    Par défaut
    ma référence au row prefetching valait dans les cas où une requête ramène plusieurs centaines de milliers de lignes. Dans ton cas ça n'a plus d'intérêt.
    Oracle peut bien sûr exécuter autant de requêtes que tu le souhaites. Par contre vu que tu n'utilises pas de bind variables tu auras un hard parse à chaque exécution de ta requête => consommation accrue de la CPU + contentions au niveau de la shared pool (latchs au niveau de la « library cache »)

  9. #9
    Membre actif
    jARdinaJ - ArTista - PeinturA - PoéZie - mUzICa
    Inscrit en
    Septembre 2010
    Messages
    74
    Détails du profil
    Informations professionnelles :
    Activité : jARdinaJ - ArTista - PeinturA - PoéZie - mUzICa
    Secteur : Arts - Culture

    Informations forums :
    Inscription : Septembre 2010
    Messages : 74
    Par défaut exemples de code
    bonjour Ahmed,

    je ne suis pas encore très fort en oracle, quelles sont la signification de ses termes :

    row prefetching,
    bind variables,
    shared pool
    s il te plaît, est ce que tu peux donner un exemple de code à utiliser pour mon cas:

    merci beaucoup et merci d'avance
    lastmagik

  10. #10
    Membre Expert
    Inscrit en
    Août 2009
    Messages
    1 073
    Détails du profil
    Informations forums :
    Inscription : Août 2009
    Messages : 1 073
    Par défaut
    Oracle interprète le SQL en parsant le code, et en le traduisant avec un plan d'exécution qui lui dit quoi faire, dans quel ordre, en utilisant quels indexes éventuels, et quoi ramener.
    Pour éviter cette phase de "hard parsing" pour la même requête (car on exécute la plupart du temps la même requête plein de fois), il met ceci dans le "shared pool", et du coup ne refait pas le boulot.
    Mais pour ça, il faut que la requête soit la même ! Et mettre des valeurs "en dur" dans la requête, ça modifie la requête.
    Le "bind variable", c'est lui dire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT SAM FROM PPM WHERE IDENTIFY=:identifyValue;
    Et ensuite on "binde" (="attache / lie") la valeur souhaitée à l'exécution. Le plan utilisé sera le même pour toutes les valeurs utilisées, et on gagne du temps - si la requête a un temps d'exécution très court, du genre micro-seconde, c'est colossal comme gain ; si la requête a un temps de l'ordre de la minute, ça ne se voit pas - car il n'y a plus du tout la phase de "hard parsing" évoquée plus haut.

Discussions similaires

  1. [tomcat] [jsp] Problème avec driver OCI pour oracle
    Par nanardcompanie dans le forum Tomcat et TomEE
    Réponses: 3
    Dernier message: 01/07/2004, 09h54
  2. Requete select pour récupérer les no match entre 2 tables
    Par Celina dans le forum MS SQL Server
    Réponses: 4
    Dernier message: 16/12/2003, 11h59
  3. y-a-t-il un générateur pour Oracle ?
    Par bahia dans le forum Autres outils décisionnels
    Réponses: 3
    Dernier message: 27/08/2003, 09h07
  4. [Kylix] kylix + dbexpress pour oracle!!
    Par RezzA dans le forum EDI
    Réponses: 6
    Dernier message: 14/01/2003, 18h33

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