Précédent   Forum des professionnels en informatique > Bases de données > Oracle > SQL
SQL Forum d'entraide sur le SQL pour Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/11/2011, 09h44   #1
Invité régulier
 
fontaine - statut doré - pièces
jARdinaJ - ArTista - PeinturA - PoéZie - mUzICa
Inscription : septembre 2010
Messages : 56
Détails du profil
Informations personnelles :
Nom : fontaine - statut doré - pièces

Informations professionnelles :
Activité : jARdinaJ - ArTista - PeinturA - PoéZie - mUzICa
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2010
Messages : 56
Points : 6
Points : 6
Par défaut Select pour oracle

bonjour,

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

par exemple :
Code :
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
lastmagik est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2011, 09h54   #2
McM
Expert Confirmé Sénior
 
Inscription : juillet 2003
Messages : 3 440
Détails du profil
Informations forums :
Inscription : juillet 2003
Messages : 3 440
Points : 4 183
Points : 4 183
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.
__________________
More Code : More Bugs. Less Code : Less Bugs
McM est actuellement connecté   Envoyer un message privé Réponse avec citation 10
Vieux 23/11/2011, 11h22   #3
Invité régulier
 
fontaine - statut doré - pièces
jARdinaJ - ArTista - PeinturA - PoéZie - mUzICa
Inscription : septembre 2010
Messages : 56
Détails du profil
Informations personnelles :
Nom : fontaine - statut doré - pièces

Informations professionnelles :
Activité : jARdinaJ - ArTista - PeinturA - PoéZie - mUzICa
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2010
Messages : 56
Points : 6
Points : 6
Par défaut suite de réponses

merci beaucoup McM,

mon oracle il est accessible à partir de mon unix

Code :
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
lastmagik est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 13h01   #4
Membre confirmé
 
Avatar de Ahmed AANGOUR
 
Homme Ahmed AANGOUR
DBA Etudes Oracle
Inscription : janvier 2010
Messages : 123
Détails du profil
Informations personnelles :
Nom : Homme Ahmed AANGOUR
Âge : 33
Localisation : France

Informations professionnelles :
Activité : DBA Etudes Oracle

Informations forums :
Inscription : janvier 2010
Messages : 123
Points : 217
Points : 217
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
__________________
Mon blog Oracle: http://ahmedaangour.blogspot.com/
Ahmed AANGOUR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 13h14   #5
Invité régulier
 
fontaine - statut doré - pièces
jARdinaJ - ArTista - PeinturA - PoéZie - mUzICa
Inscription : septembre 2010
Messages : 56
Détails du profil
Informations personnelles :
Nom : fontaine - statut doré - pièces

Informations professionnelles :
Activité : jARdinaJ - ArTista - PeinturA - PoéZie - mUzICa
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2010
Messages : 56
Points : 6
Points : 6
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 :
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';
Citation:
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
lastmagik est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 13h15   #6
Membre Expert
 
Avatar de pacmann
 
Homme Pacman Pacman
Business analyst
Inscription : juin 2004
Messages : 1 417
Détails du profil
Informations personnelles :
Nom : Homme Pacman Pacman
Âge : 31
Localisation : France, Paris (Île de France)

Informations professionnelles :
Activité : Business analyst
Secteur : Finance

Informations forums :
Inscription : juin 2004
Messages : 1 417
Points : 2 309
Points : 2 309
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.
__________________

(c'est ma photo)
Paku, Paku !
Pour les jeunes incultes : non, je ne suis pas un pokémon...

Le pacblog : http://pacmann.over-blog.com/
pacmann est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 13h36   #7
Invité régulier
 
fontaine - statut doré - pièces
jARdinaJ - ArTista - PeinturA - PoéZie - mUzICa
Inscription : septembre 2010
Messages : 56
Détails du profil
Informations personnelles :
Nom : fontaine - statut doré - pièces

Informations professionnelles :
Activité : jARdinaJ - ArTista - PeinturA - PoéZie - mUzICa
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2010
Messages : 56
Points : 6
Points : 6
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 :
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
lastmagik est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 13h49   #8
Membre confirmé
 
Avatar de Ahmed AANGOUR
 
Homme Ahmed AANGOUR
DBA Etudes Oracle
Inscription : janvier 2010
Messages : 123
Détails du profil
Informations personnelles :
Nom : Homme Ahmed AANGOUR
Âge : 33
Localisation : France

Informations professionnelles :
Activité : DBA Etudes Oracle

Informations forums :
Inscription : janvier 2010
Messages : 123
Points : 217
Points : 217
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 »)
__________________
Mon blog Oracle: http://ahmedaangour.blogspot.com/
Ahmed AANGOUR est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/11/2011, 15h14   #9
Invité régulier
 
fontaine - statut doré - pièces
jARdinaJ - ArTista - PeinturA - PoéZie - mUzICa
Inscription : septembre 2010
Messages : 56
Détails du profil
Informations personnelles :
Nom : fontaine - statut doré - pièces

Informations professionnelles :
Activité : jARdinaJ - ArTista - PeinturA - PoéZie - mUzICa
Secteur : Arts - Culture

Informations forums :
Inscription : septembre 2010
Messages : 56
Points : 6
Points : 6
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 :

Citation:
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
lastmagik est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2011, 13h15   #10
Membre Expert
 
Inscription : août 2009
Messages : 779
Détails du profil
Informations forums :
Inscription : août 2009
Messages : 779
Points : 1 098
Points : 1 098
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 :
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.
Rei Ichido est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 14h31.


 
 
 
 
Partenaires

Hébergement Web