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

Administration Oracle Discussion :

Problème perfs edition express 10g


Sujet :

Administration Oracle

  1. #1
    Membre confirmé Avatar de MetalGeek
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    412
    Détails du profil
    Informations personnelles :
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 412
    Points : 513
    Points
    513
    Par défaut Problème perfs edition express 10g
    Bonjour,
    tout d'abord je précise que je ne connais presque rien à Oracle, je suis développeur .NET et mis à part le SQL et les tâches de base l'administration de bases de données n'est pas mon fort...

    J'ai une application qui récupère des données depuis une base Oracle sous la version 10g express. Il n'y a que 3 tables, une vue, le tout ne dépasse pas les 200 megas de données, il n'y a aucune relation, pas de trigger bref que du simpliste.
    Seulement, un simple "SELECT COUNT(*) FROM [maVue] prend 241,44 secondes sous l'interface web d'Oracle (127.0.0.1/apex etc)... (le résultat arrive bien ensuite => environ 27000 lignes, ce qui n'est pas énorme...)

    Donc, ma question est : y-a-t-il un moyen simple de remédier à cela ? des fichiers de log à vider, des paramètres à changer ?

    Dites-moi ce qu'il vous faut éventuellement comme infos supplémentaires (en me parlant comme au non connaisseur d'Oracle que je suis!).

  2. #2
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    D'abord essayer de vérifier que c'est bien la la requête SQL qui est lente en utilisant SQL*Plus pour l'exécuter. Si c'est bien le cas, il faudrait la sortie des scripts référencés dans le message OTN suivant afin d'avoir le plus d'éléments possible pour analyser la requête: http://forums.oracle.com/forums/thre...sageID=3308808

  3. #3
    Membre éprouvé Avatar de 13thFloor
    Homme Profil pro
    DBA Oracle freelance
    Inscrit en
    Janvier 2005
    Messages
    670
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 57
    Localisation : France

    Informations professionnelles :
    Activité : DBA Oracle freelance

    Informations forums :
    Inscription : Janvier 2005
    Messages : 670
    Points : 945
    Points
    945
    Par défaut
    Les tables concernées par la vue n'ont t-elles pas été plus grandes auparavant ?
    Je m'explique : un select count(*) va induire un parcours complet de la table (appelé FTS full table scan). La lecture va se faire jusqu'au dernier bloc qui a été écrit (le high water mark) même s'il est vide. Il se peut donc que ton select lise plus de blocs que nécessaire.
    Pour y remédier simplement (j'ai bien noté que tu ne connais presque rien à oracle), il faudrait
    - soit abaisser le high water mark : alter table XXX shrink space compact;
    - soit réorganiser la table et reconstruire ses index : alter table XXX move; alter index index_de_XXX rebuild;

    PS : vu que tu accèdes à une vue, le plan d'exécution nous serait utile.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Janvier 2009
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 55
    Points : 31
    Points
    31
    Par défaut
    Vu que tu accede a une vue ce n'est pas le temps de count(*) que tu mesure mais plus tot le temps de construction de la vue.

    Un solution est d'utiliser une vue materialise si ce n'est pas le cas.
    Apres tu peux generer les statistiques sur la vue materialisé comme pour une table ce qui aidera beaucoup.

    Les tables qui rentre dans la creation de la vue sont mise a jour regulierement ? => Si oui le mise ajour de la vue materialisé ca peut etre couteuse.

    Autre piste:
    Tu peus essayer aussi de paralleliser la requette (ca ne marche pas toujours si tu as bcp d'access disque: le parallelisme peut augmenter les access I/O).
    Tu as combien de CPU et combien de threads pas CPU ? Tu peux essayer de mettre 1,33 * cpu_count dans une premiere estimation
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SQL> show parameter cpu
    NAME                                 TYPE        VALUE
    ------------------------------------ ----------- ------------------------------
    cpu_count                            integer     5
    parallel_threads_per_cpu             integer     2
    Cdt,

  5. #5
    Membre expert

    Profil pro
    Inscrit en
    Février 2006
    Messages
    3 437
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 3 437
    Points : 3 597
    Points
    3 597
    Par défaut
    Vu que tu accede a une vue ce n'est pas le temps de count(*) que tu mesure mais plus tot le temps de construction de la vue.


    Non. Une vue crééé avec CREATE VIEW n'est que du SQL stocké dans le dictionnaire et que Oracle substitue au nom de la vue lors de la phase de compilation de la requête.

    Et Oracle XE n'a pas de fonctionnalités du type DML parallèle , ni de réécriture pour les vues matérialisées et ne peut utiliser qu'un seul processeur quelque soit la machine

  6. #6
    Nouveau membre du Club
    Inscrit en
    Janvier 2009
    Messages
    55
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 55
    Points : 31
    Points
    31
    Par défaut
    Je dois revoir ma copie sur Oracle XE.

Discussions similaires

  1. Réponses: 2
    Dernier message: 27/02/2007, 09h51
  2. [VB2005] [Problème] Visual Basic Express Edition
    Par Warrd dans le forum Windows Forms
    Réponses: 10
    Dernier message: 18/06/2006, 13h07
  3. Problème avec InstallShield Express : BDE ? Access ?
    Par SLicTa dans le forum C++Builder
    Réponses: 5
    Dernier message: 23/01/2006, 16h01
  4. Problème SP2 Outlook express
    Par kikica dans le forum Outlook Express / Windows Mail
    Réponses: 4
    Dernier message: 16/09/2005, 14h07
  5. Problème sur une expression régulière
    Par Verbal-Quint dans le forum Langage
    Réponses: 6
    Dernier message: 12/11/2004, 10h54

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