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 :

Optimistation par table partitionnée (verticale)


Sujet :

Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Novembre 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 6
    Par défaut Optimistation par table partitionnée (verticale)
    Bonjour,

    Je travail sur un projet dont le but est d'optimiser le temps de réponse des requêtes sous oracle 11G avec comme Benchmark TPC-H, pour faire j'utilise la fragmentation (partition) verticale des tables. Donc je dois faire plusieurs tests pour tous les schémas fragmentés, ce qui est trop onéreux.

    Ma question : est il possible d’estimer le coût des requêtes sur les schémas fragmentés, mais sans fragmenter réellement le schéma original, un schéma virtuelle.
    Explain plan permets de faire des estimations mais sur un le schéma existant, pas sur des schémas hypothétiques.

    Merci d’avance pour vos réponses.

  2. #2
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    C’est quoi votre façon de "partitionner verticalement" ? Pourriez-vous détailler ?

  3. #3
    Membre du Club
    Inscrit en
    Novembre 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 6
    Par défaut
    Ce que j'entends par partition verticale c'est la fragmentation de la table par rapport aux colonnes et la duplication de la clef primaire exemple : R (Matricule, Nom, Prénom, Adresse, Date Naissance, Lieu Naissance)

    soit Q1 : select t.Nom, t.Prénom from R t Where t.Nom Like %toto%;

    Il serait intéressant de partitionner la table verticalement sur les colonnes nécessaires pour la charge de travail (requêtes), donc créer 2 nouvelles relations R1 et R2 où
    R1 (Matricule, Nom, Prénom)
    R2 (Matricule, Adresse, Date Naissance, Lieu Naissance).

    le lien suivant est un exemple sur la fragmentation verticale http://www.asktherealtom.ch/?p=73

  4. #4
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    C’est OK.
    D’abord, avez vous déjà lu cet article du Tom Kyte: "Wide Load Storage" ?
    Ensuite, vous gagnez que pour certaines requêtes suite soit au mécanisme d’élimination des tables soit en utilisant l’index à la place de la table.
    Donc vous devez d’abord bien être certain que c’est bénéfique par rapport à votre application.
    Concernant votre question peut être qu'examiner quelques cases et éventuellement jouer avec les statistiques pour « faire croire à l’optimiseur » suffira pour se faire une idée. De toute façon une validation des modifications par l’application sera nécessaire.

  5. #5
    Membre du Club
    Inscrit en
    Novembre 2009
    Messages
    6
    Détails du profil
    Informations forums :
    Inscription : Novembre 2009
    Messages : 6
    Par défaut
    C'est ce que je pensé, mais les statistiques ne me permettent de simuler un schéma.
    j'ai trouver dans la doc 11 G , l'utilitaire Information Lifecycle Management (ILM); il permet de faire une simulation de partition (volet "Partition Simulation") mais seulement pour l'espace de stockage.
    Je crois qu'il me reste à faire des estimations théoriques selon le modèle de coût "(cardinalité*longueur de tuple*sélectivité)/taille page" pour calculer le nombre des I/O.
    si vous pouvez éclaircir ma lanterne sur :
    soit la table R(Clé_A, B, C, D, E, F) partitionné en deux fragments verticaux
    R1(Clé_A, B, C) & R2(Clé_A, D, E, F)
    quelle serait l'estimation du coût de la jointure de R1 et R2 sur la clé primaire ; -jointure boucle imbriqué sur deux indexes -, autrement dit qu'es que je perds quand je partitionne pour le cas où pour une requête j'aurais besoin de tous les attributs.

  6. #6
    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
    J'ai du mal à comprendre ce que ça peut apporter de plus qu'un index ce partitionnement

  7. #7
    Expert confirmé Avatar de mnitu
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2007
    Messages
    5 611
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Marne (Champagne Ardenne)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2007
    Messages : 5 611
    Par défaut
    @hichaime
    Laissez tomber les calculs théorétiques faite plutôt des tests sur quelques cases.

    @orafrance
    C’est une autre chose orafrance. T’as lu l’article que j’ai indiqué dans le lien ?

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

Discussions similaires

  1. [9i] Count sur table partitionnées
    Par saysay dans le forum Oracle
    Réponses: 4
    Dernier message: 26/12/2005, 14h33
  2. Quel SGBD peut gérer plus de 2000 champs par table?
    Par colorid dans le forum Bases de données
    Réponses: 9
    Dernier message: 23/11/2005, 20h58
  3. Pb de truncate sur table partitionnée
    Par Mateo dans le forum Oracle
    Réponses: 14
    Dernier message: 29/11/2004, 09h58
  4. 3 tables, 1 attribut date par table > avoir la date MAX
    Par Amon dans le forum Langage SQL
    Réponses: 5
    Dernier message: 26/05/2004, 13h54

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