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 :

Parallélisme sur une table


Sujet :

Administration Oracle

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 115
    Par défaut Parallélisme sur une table
    Bonjour à tous,

    j'ai une base en production sur oracle 9i qui a 4 processeurs logique.
    A priori aucune table n'a été crée avec l'option
    D'apres ce que j'ai compris, cela veut dire que mes traitements n'utilisent qu'un processeur logique.

    Si je recréer les tables avec cette option parrallel mes requetes DML seront plus rapide?

    Ai je bien tout compris de cette option?
    j'ai pas trouvé grande explication sur cette option.
    Merci de votre aide

  2. #2
    Membre émérite Avatar de philcero
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Septembre 2007
    Messages
    528
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2007
    Messages : 528
    Par défaut
    La clause PARALLEL permet effectivement de spécifier le degré de parallélisme lors de la création de la table (create ... as select ...) mais également le degré de parallélisme par défaut lors des DML sur la table.

    Tout dépends du type de base et de table en fait, en OLTP on laissera le NOPARALLEL car on favorisera la répartition de charge entre les divers clients, en mode OLAP on utilisera la clause PARALLEL pour les grosses tables, surtout les partitionnées.

    Afin de modifier le mode pour une table existante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    alter table xxx parallel <degré voulu>;
    N'alloue jamais la totalité des processeurs logiques à une table car l'OS et le DBA ont besoin d'eux aussi et en cas de charge tu ira au crash. En OLAP on peut aller jusqu'à N-2 ce qui est déjà colossal en cas de requête lourde.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 115
    Par défaut
    ... a priori je suis en mode OLTP mais avec une table de 150 Go qui bouge beaucoup.

    Ma base est alimentée en permanance par des batch soumis avec le même user. Ma table de 150 Go est tres souvent sollicité par ceux-ci et je voudrais utiliser l'option PARALLEL pour améliorer son alimentation. Genre faire des insert à 4h du matin avec 3 processeurs au lieu de 1.

  4. #4
    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
    Est-ce qu'au moins l'instance est paramétrée pour faire du parallélisme ? parallel_max_servers, parallel_server, etc... ?

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 115
    Par défaut
    non pas encore:

    je réfléchi seulement à cette option et je voulais avoir votre avis.
    Si cette option peu améliorer les traitements, je modifie mon init.ora pour que les dev puissent creer des tables avec l'option parralel. Petit à petit je migrerais les tables (export de la table, recréation et injection des données).

    Donc effectivement je n'ai encore pas modifié mon init.ora

  6. #6
    Membre émérite Avatar de philcero
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Septembre 2007
    Messages
    528
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2007
    Messages : 528
    Par défaut
    Pour moi, une fois l'instance paramétrée, tu n'as pas besoin de faire un export/import, un simple ALTER suffit.

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

    Informations professionnelles :
    Activité : DBA Oracle freelance

    Informations forums :
    Inscription : Janvier 2005
    Messages : 670
    Par défaut
    Personnellement je positionnerai plutôt le parallélisme au niveau requête (avec un hint) plutôt que sur la table car dans ce dernier cas, tout accès essaiera de se faire en parallèle (à concurrence du nombre de process // disponibles), ce qui pourra être nuisible à certaines requêtes.

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 115
    Par défaut
    A revoir avec les developpeur mais je crois qu'il y a déjà des hint aux requetes.

    Par contre je ne comprends pas en quoi cela serait pénalisant d'attribuer 2 processeurs logiques aux requetes?

    plus il y a de ressources dédiées mieux cela devrait être non?
    Pour résumer je pensais que je n'avais que 1 processeur logique d'utilisé et que les 3 autres se tournaient les pouces. L'idée était donc de tous les soliciter pour acceler les traitements.
    ce n'est pas aussi simple?

  9. #9
    Membre émérite Avatar de philcero
    Homme Profil pro
    Architecte de système d'information
    Inscrit en
    Septembre 2007
    Messages
    528
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Architecte de système d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2007
    Messages : 528
    Par défaut
    Par contre je ne comprends pas en quoi cela serait pénalisant d'attribuer 2 processeurs logiques aux requetes?
    Je pense effectivement que cela ne devrait pas poser plus de problèmes que cela, du moment que tu n'attribue pas tous les processeurs. Ensuite intervient la communication entre coeurs qui elle peut poser des micro-temps de latences qui cumulés (On est en Ghz) peuvent dégrader les performances de façon invisible (Plus exactement difficilement identifiable).

    Bref, surveille tout de même le comportement de ta base. Historiser quelques statistiques sur deux trois requête clefs ça fait pas de mal...

  10. #10
    Membre confirmé
    Profil pro
    Inscrit en
    Septembre 2007
    Messages
    115
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Septembre 2007
    Messages : 115
    Par défaut
    ok merci pour les infos!


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

Discussions similaires

  1. [JTable] Raccourci clavier sur une Table
    Par sylvain_2020 dans le forum Composants
    Réponses: 5
    Dernier message: 05/07/2007, 09h01
  2. [débutant] Aide pour mettre une FOREIGN KEY sur une table
    Par cauldron dans le forum Langage SQL
    Réponses: 2
    Dernier message: 14/11/2004, 17h16
  3. Pooling sur une table SQL
    Par Jean-Jacques Engels dans le forum Bases de données
    Réponses: 5
    Dernier message: 04/11/2004, 23h10
  4. Recordcount sur une table filtrée
    Par developpeur_mehdi dans le forum Bases de données
    Réponses: 2
    Dernier message: 15/03/2004, 00h05
  5. Pb d'auto-incrément sur une table v7
    Par Nivux dans le forum Paradox
    Réponses: 9
    Dernier message: 26/12/2002, 12h05

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