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 :

count(*) trop long


Sujet :

Oracle

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4
    Points : 2
    Points
    2
    Par défaut count(*) trop long
    sur deux bases différentes je fais le même select count(*) il est 10 000 fois plus long sur une base alors que sur l'autre il répond instantanément.

    Quelqu'un peut-il m'aider à comprendre en sachant que j'ai passé les statistiques sur toutes les deux bases.

    Qu'est ce que je peux regarder d'autres ? Le nombre d'extents est de 4.

  2. #2
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    Bonjour Roda et bienvenue sur le forum Oracle de developpez.com ,
    Avant de poster merci de bien lire les régles et otamment de bien préciser le contexte technique.

    Pour ta question , tu reste assez évasif :
    Est ce la même version d'oracle?
    Compte t'il le même nombre de ligne ?
    Est ce le même réglage OS ?
    Est ce le même réglage Oracle?
    ...

    Quelles sont les différences entre les deux versions ?

  3. #3
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Ok désolé.
    Oracle 8.1.7 même machine même Os.
    Avant le temps de réponse etait OK.
    On a réinitialiser la table par un chargement sqlldr est ce que le problème peut venir de là.

  4. #4
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    les stats ont bien été calculées APRES le chargement ? Les indexes sont les mêmes ?

  5. #5
    Expert Oracle confirmé

    Homme Profil pro
    Consultant Big Data
    Inscrit en
    Mars 2003
    Messages
    448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Consultant Big Data
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2003
    Messages : 448
    Points : 926
    Points
    926
    Par défaut
    Bonjour,

    N'y aurait-il pas une différence au niveau des index de la table ?
    Merci de vérifier si il n'y a pas eu d'index de supprimé, ou bien de désactivé.

  6. #6
    Rédacteur

    Profil pro
    Inscrit en
    Janvier 2005
    Messages
    2 320
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2005
    Messages : 2 320
    Points : 3 798
    Points
    3 798
    Par défaut
    Un rebuild des index et un calcul des stats sur les index et tables seraient le bienvenue à mon avis

  7. #7
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Il n'y a aucun index sur la table c'est un select count(*) from table
    Tout bete.
    Toutes les stats ont bien été calculés.

  8. #8
    Expert éminent sénior
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 47
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 075
    Points
    19 075
    Par défaut
    pas de clause WHERE et le même nombre d'enregistrements ?

  9. #9
    Rédacteur

    Inscrit en
    Septembre 2004
    Messages
    626
    Détails du profil
    Informations forums :
    Inscription : Septembre 2004
    Messages : 626
    Points : 848
    Points
    848
    Par défaut
    Peut etre que la High Water Mark est bcp plus haute sur la table qui souffre du temps le plus long. A t'elle été bcp plus grosse de par le passé ?


    Laly.

  10. #10
    Candidat au Club
    Profil pro
    Inscrit en
    Septembre 2005
    Messages
    4
    Détails du profil
    Informations personnelles :
    Localisation : Canada

    Informations forums :
    Inscription : Septembre 2005
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Pas de clause where !
    Le même nombre d'enregistrements dans la table.

    Cette table n'est jamais mise à jour elle est est toujours tronquer (truncate) et ensuite il y a un chargement par sqlldr.
    Le pctused=98 et le pctfree=0

  11. #11
    Expert Oracle confirmé

    Homme Profil pro
    Consultant Big Data
    Inscrit en
    Mars 2003
    Messages
    448
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Essonne (Île de France)

    Informations professionnelles :
    Activité : Consultant Big Data
    Secteur : Conseil

    Informations forums :
    Inscription : Mars 2003
    Messages : 448
    Points : 926
    Points
    926
    Par défaut
    Résumons : puisqu'il n'y a pas d'index sur cette table, le select count (*)... ne peut que provoquer un balayage complet de la table.

    Il semble donc y avoir un pb au niveau de la lecture des blocs Oracle de la table.

    A mon humble avis, cela peut venir de 3 raisons :

    1 ) un stockage complétement différent entre les 2 tables. Pour le voir, que donne un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select * from user_extents where segment_name = 'nom_de_la_table' order by extent_id ;
    entre les 2 bases.

    2 ) une différence au niveau du paramétrage de la base, notamment du paramètre db_file_multiblock_read_count. Que donne un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    select value from v$parameter where name = 'db_file_multiblock_read_count' ;
    3 ) un pb d'accès disque, genre contention ???

    Dernière piste : lors du select count (*) sur cette table, la table n'est pas en modification ???

    Pas d'autres sessions actives qui seraient en train de modifier cette table ???

  12. #12
    Membre expert
    Avatar de bouyao
    Inscrit en
    Janvier 2005
    Messages
    1 778
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 1 778
    Points : 3 033
    Points
    3 033
    Par défaut
    sur les deux bases tu fait
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    set autotrace on
    select count(*) from ...
    et tu nous donne les resultats

    Tu charge tes données avec sqlloader puis aprés tu lance l'analyse et non pas l'inverse ?

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. count(*) trop long
    Par voyageur dans le forum MS SQL Server
    Réponses: 11
    Dernier message: 21/12/2007, 07h03
  2. Mot trop long
    Par Toudy dans le forum ASP
    Réponses: 6
    Dernier message: 28/07/2004, 17h51
  3. Chargement de page trop long
    Par t_o_7_ dans le forum ASP
    Réponses: 2
    Dernier message: 19/09/2003, 18h58
  4. [TComboBox] Contenu trop long pour la zone d'affichage
    Par bebeours dans le forum C++Builder
    Réponses: 2
    Dernier message: 15/09/2003, 16h21
  5. Arrêter un prog si temps de connexion trop long
    Par jakouz dans le forum Langage
    Réponses: 4
    Dernier message: 22/10/2002, 18h28

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