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

Oracle Discussion :

[9i] Recupérer le nombre de lignes dans une table


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Avril 2005
    Messages
    175
    Détails du profil
    Informations forums :
    Inscription : Avril 2005
    Messages : 175
    Par défaut Recupérer le nombre de lignes dans une table Oracle
    Bonjour,

    J'utilise une base Oracle 9i. Je souhaite récupérer le nombre de ligne à partir d'une requête SQL mais je ne veux pas d'un select count(*) from...... car cette dernière fait un full scan coûteux sur la table. Comment alors faire autrement en utilisant peut-être par exemple une vue Oracle ?

    Merci pour votre aide

  2. #2
    Membre éprouvé
    Inscrit en
    Octobre 2005
    Messages
    125
    Détails du profil
    Informations forums :
    Inscription : Octobre 2005
    Messages : 125
    Par défaut
    Citation Envoyé par marti
    Bonjour,

    J'utilise une base Oracle 9i. Je souhaite récupérer le nombre de ligne à partir d'une requête SQL mais je ne veux pas d'un select count(*) from...... car cette dernière fait un full scan coûteux sur la table. Comment alors faire autrement en utilisant peut-être par exemple une vue Oracle ?

    Merci pour votre aide
    Pourrais-tu preciser un petit peu ?
    Dans le titre tu veux savoir le nombre de lignes d'une table et ensuite tu parles d'une requete...

    Donc si c pour une table, c clair qu'un count(*) peut s'averer couteux si la table est grosse. Cependant si elle dispose d'un PK et d'une sequence et qu'il n'y a pas de trou (registres effaces), un simple SELECT MA_SEQ.currval FROM DUAL fera l'affaire.

    Si c pour une requete, je vois pas d'autre solution qu'un SELECT COUNT(*) FROM (/*TA_REQUETE*/).
    Cependant, dans ce cas, si ta requete est suffisement optimisee, ca ne devrait pas prendre trop de tps...

  3. #3
    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
    num_rows de dba_tables si les stats sont à jours à part ça et count(*)... tu peux pas

  4. #4
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    74
    Détails du profil
    Informations personnelles :
    Âge : 52
    Localisation : France, Haute Vienne (Limousin)

    Informations forums :
    Inscription : Octobre 2006
    Messages : 74
    Par défaut
    Au lieu de count(*), tu peux déjà faire un select count('r') c'est moins couteux

  5. #5
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Citation Envoyé par Harry Potter
    Au lieu de count(*), tu peux déjà faire un select count('r') c'est moins couteux
    Ca c'est une légende urbaine.

  6. #6
    Membre émérite Avatar de Yorglaa
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    845
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : Suisse

    Informations forums :
    Inscription : Janvier 2004
    Messages : 845
    Par défaut
    si au lieux de faire un count(*) tu fais un count sur la colonne de clef primaire, y a pas de full table scan ! Oracle passe par l'index de ta clef primaire !

Discussions similaires

  1. nombre de lignes dans une table selon valeur
    Par halimux dans le forum Requêtes
    Réponses: 2
    Dernier message: 29/01/2014, 10h55
  2. Compter le nombre de lignes dans une table
    Par foudesbois dans le forum VBA Word
    Réponses: 4
    Dernier message: 15/02/2013, 14h21
  3. Nombre de lignes dans une table
    Par emytom0308 dans le forum Oracle
    Réponses: 3
    Dernier message: 02/02/2012, 22h56
  4. tables SYSINDEXES - Comptage nombre de lignes dans une tables
    Par Labienus dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 13/04/2008, 23h20
  5. Réponses: 8
    Dernier message: 20/06/2005, 15h10

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