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 :

[DWH] Bonnes pratiques avec les tablespace


Sujet :

Administration Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre Expert Avatar de nuke_y
    Profil pro
    Indépendant en analyse de données
    Inscrit en
    Mai 2004
    Messages
    2 076
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant en analyse de données

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 076
    Par défaut [DWH] Bonnes pratiques avec les tablespace
    Bonjour à tous,

    2 questions très basiques sur la bonne pratique de l'utilisation de tablespaces dans un datawarehouse suite à un débat entre spécialistes BI mais pas DBA:

    -Il faut un TBS séparé pour les index et les données. Ca me semble la bonne pratique (j'ai toujours vu ça). Les 2 raisons pour le faire, données par 2 personnes différentes, il doit bien y en avoir une des deux qui est bonne, ou une 3e dont je ne me souviens pas :
    • Ca permet de mettre les tablespaces sur des datafiles différents, avec des propriétés différentes (plus rapide d'accès pour les Index que les données, ou l'inverse)

    • Ca permet d'avoir un réglage fin différent (politique d'extend, partitionnement) et une administration différentes (recreate Index avec option reuse, exp/imp en vue de sauvegarde, etc.) car les index bougent plus que les données qui peuvent bouger seulement en append mais sauver les index n'est pas primordial



    - Il FAUT utiliser le même TBS pour les index des faits et des dimensions, et le même TBS pour les données des faits et des dimensions. Donc grouper TOUS les index sur le même TBS et TOUTES les données sur un autre TBS, et pas plusieurs TBS. Là dessus je suis beaucoup plus suspicieux. Pour moi, en dehors des logiques de fine tuning avec des datafiles sur des disques différents, restons sur le cas d'UN disque sur lequel se trouve tous les datafiles, l'intérêt d'utiliser un seul TBS n'est pas évident.

    Bien sûr si on requête les données des faits joints avec les dimensions, on va attaquer toujours le même TBS, donc on va moins se promener dans le disque. Mais est-ce qu'on ne risque pas par la même occasion de disperser des données au travers de tous les datafiles ? Si on a 10 tables de faits, 20 dimensions, quand je fais une requête avec 1 table de faits et 20 dimensions est-ce qu'Oracle ne va pas devoir aller picorer les blocs dans la totalité des datafiles ? Est-ce que le fait de mettre TOUTES les données sur un seul TBS ne limite pas fortement l'intérêt et les possibilité du partitionnement ?

    Bref est-ce qu'il y a un REEL avantage, surtout d'un point de vue perfs, à tout regrouper dans seulement 2 TBS (INDEX et DATA) ?

    Moi j'en étais resté à une règle qui disait que, en dehors du fine tuning qui obéit à d'autres règles, on fait 1 TBS par type d'administration:
    • Manual extend -> 1 TBS

    • Autoextend -> 1 TBS

    • recreate index avec reuse -> 1 TBS

    • etc.


    Merci de vos éclaircissements

  2. #2
    Membre Expert Avatar de nuke_y
    Profil pro
    Indépendant en analyse de données
    Inscrit en
    Mai 2004
    Messages
    2 076
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant en analyse de données

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 076
    Par défaut
    En fouillant un peu j'ai trouvé ça qui semblerait plutôt aller dans le sens du mono-TBS, qui serait plutôt meilleur pour les perfs que plusieurs TBS.

  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
    le post que tu cites parle d'une table par TS, j'vois rien sur les indexes

    Moi je préfère 2 TS séparé simplement parce que la gestion des objets est différente et donc les possibilités de shrinker le tablespace aussi. Rebuilder les indexes pour gagner de l'espace et se retrouver avec un bloc de table en bout de TS c'est rageant

    Pour le reste, je crois surtout qu'il n'y a pas de règle, tout dépends de l'utilisation des indexes, des volumes dont on parle, du type de stockage (le data placement est surement plus sensible notamment), etc. La seule règle c'est : observer et réagir

    Si tu veux une règle gérérale : il parait que le nombre d'or d'Oracle c'est 1024. Donc pas plus de 1024 extents par exemple dans un segment, ni dans un TS. Ceci dit, j'ai jamais pu le vérifier dans la vraie vie

  4. #4
    Membre Expert Avatar de nuke_y
    Profil pro
    Indépendant en analyse de données
    Inscrit en
    Mai 2004
    Messages
    2 076
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant en analyse de données

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 076
    Par défaut
    Salut Orafrance, toujours actif à ce que je vois

    Le 1er j'avais peu de doute.

    Merci pour ton avis sur le 2e point, ça me rassure déjà un peu l'idée du "ça dépend, il n'y a pas de vraie règle à appliquer systématiquement".

    S'il y a d'autres avis, dans la même direction ou dans une autre, je suis preneur pour étoffer la reflexion.

    Merci beaucoup

  5. #5
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Sr. Specialist Solutions Architect @Databricks
    Inscrit en
    Septembre 2008
    Messages
    8 454
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Sr. Specialist Solutions Architect @Databricks
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 454
    Par défaut
    L'utilisation de différents tablespaces pour les tables et les index ne servent que pour de l'administration, mais côté performance ça ne change plus rien.
    Idem pour les extents, laissez Oracle gérer (je ne sais jamais si c'est ASM ou ASSM).

    Edit : déjà en 2002 c'était devenu un mythe
    https://groups.google.com/forum/#!to...B1-25-false%5D

  6. #6
    Membre Expert Avatar de nuke_y
    Profil pro
    Indépendant en analyse de données
    Inscrit en
    Mai 2004
    Messages
    2 076
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Indépendant en analyse de données

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 076
    Par défaut
    Oui je suis d'accord avec ce qui se dit dans le lien que tu as donné Waldar : ça peut aider légèrement en administration, et sinon il faut vraiment se pencher sur du fine tuning pour que ça ait un intérêt.

    Un avis sur le 2e point ?

    Merci

Discussions similaires

  1. Question générale sur les bonnes pratiques avec Java
    Par Teovald dans le forum Langage
    Réponses: 8
    Dernier message: 15/03/2011, 17h32
  2. Quelles sont les bonnes pratiques avec Zend Framework ?
    Par Community Management dans le forum Zend Framework
    Réponses: 14
    Dernier message: 02/02/2009, 20h35
  3. [Débutant] Bonnes pratiques avec les exceptions
    Par scougirou dans le forum Langage
    Réponses: 1
    Dernier message: 08/08/2007, 19h18
  4. [log4j][débutant] Bonnes pratiques avec les threads ?
    Par scougirou dans le forum Logging
    Réponses: 1
    Dernier message: 13/07/2007, 16h27

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