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

  1. #1
    Membre émérite 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
    Points : 2 370
    Points
    2 370
    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
    Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes.

  2. #2
    Membre émérite 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
    Points : 2 370
    Points
    2 370
    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.
    Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes.

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    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 émérite 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
    Points : 2 370
    Points
    2 370
    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
    Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes.

  5. #5
    Modérateur
    Avatar de Waldar
    Homme Profil pro
    Customer Success Manager @Vertica
    Inscrit en
    Septembre 2008
    Messages
    8 452
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Val de Marne (Île de France)

    Informations professionnelles :
    Activité : Customer Success Manager @Vertica
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2008
    Messages : 8 452
    Points : 17 820
    Points
    17 820
    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 émérite 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
    Points : 2 370
    Points
    2 370
    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
    Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes.

  7. #7
    Membre éclairé Avatar de jkofr
    Homme Profil pro
    Senior Consultant DBA (Trivadis SA)
    Inscrit en
    Octobre 2006
    Messages
    484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Suisse

    Informations professionnelles :
    Activité : Senior Consultant DBA (Trivadis SA)
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 484
    Points : 724
    Points
    724
    Par défaut
    Pour le point 2:

    Imagine que pour une raison X tu pers un datafile appartenant à un tablespace et que pour des raisons sombres et obscures tu as de grandes difficultés pour restaurer...

    Tu sera sans doute moins dans la mouise si, par chance, le datafile est celui d'un TBS qui ne contient que des indexes.

    jko
    OCM 11g, RAC and Performance & Tuning Expert 11g
    RMAN Backup & Recovery, Data Guard and Grid Control

  8. #8
    Membre émérite 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
    Points : 2 370
    Points
    2 370
    Par défaut
    Merci, mais par "point 2" j'entendais le fait de grouper toutes les DATA de toutes les tables, de tous les schémas (hors système) sur un seul TBS, est-ce que ça a un intérêt ou pas ? Orafrance m'a déjà donné son avis mais j'aime bien en avoir plusieurs.

    Merci
    Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes.

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Qui ne dit mot consent

  10. #10
    Expert éminent
    Avatar de pachot
    Homme Profil pro
    Developer Advocate YugabyteDB
    Inscrit en
    Novembre 2007
    Messages
    1 821
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 53
    Localisation : Suisse

    Informations professionnelles :
    Activité : Developer Advocate YugabyteDB
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2007
    Messages : 1 821
    Points : 6 443
    Points
    6 443
    Billets dans le blog
    1
    Par défaut
    Bonjour,

    A ceux qui veulent séparer les tables et les index, pour vérifier s'ils ont de bonnes raisons, je leur demande où ils mettent:
    - les vues matérialisées, qui sont des tables, mais avec des données qu'on peut reconstruire - comme des index.
    - les IOT qui sont des index mais avec des données qu'on ne peut pas reconstruire - donc des tables avec une structure d'index.

    Cordialement,
    Franck.
    Franck Pachot - Developer Advocate Yugabyte 🚀 Base de Données distribuée, open source, compatible PostgreSQL
    🗣 twitter: @FranckPachot - 📝 blog: blog.pachot.net - 🎧 podcast en français : https://anchor.fm/franckpachot

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Et bien les MV dans le tablespace des indexes et IOT dans les tables bien entendu.

  12. #12
    Membre émérite 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
    Points : 2 370
    Points
    2 370
    Par défaut
    Si la séparation répond au besoin de séparer les données pérennes des données qui peuvent être recalculées / reconstruites je dirais comme Orafrance.

    Sinon d'autres logiques peuvent mener à d'autres choix. Par exemple si la logique c'est que des donnée qui bougent souvent avec une organisation en index doivent être sur un TBS particulier, les index et les IOT pourraient se trouver groupés.

    J'avoue que je ne sais pas, tout est question de compromis mais ce que j'essaye surtout de comprendre c'est pourquoi on ferait le choix de cloisonner, quels sont les bénéfices (perfs / maintenance) d'une organisation cloisonnée (ou pas) des TBS et quels sont les Best Practices.

    J'ai l'impression qu'il y a pas mal de choses qui sont plus du domaine de la croyance. Si on me dit "C'est comme ça parce que ça ne mange pas de pain et on a l'habitude de faire comme ça", je suis OK, pourquoi pas ? Mais si on me dit "Aaaaah c'est gravissime tu n'as pas fait comme ça, c'est une faute" alors qu'il n'y a aucune raison factuelle, ça ça m'agace.

    Merci à tous pour le débat en tout cas
    Il vaut mieux monopoliser son intelligence sur des bêtises que sa bêtise sur des choses intelligentes.

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    Il y a aussi autre chose qui peut motiver le choix c'est le besoin ou pas de performance. Genre des tables de référence mise en cache mais dont l'accès ne nécessitent par forcément des perfs de dingues (vu que ce n'est lu qu'une fois). Ces tables pourraient être dans un datafile stocké par un disque moins rapide.

  14. #14
    Membre éclairé Avatar de jkofr
    Homme Profil pro
    Senior Consultant DBA (Trivadis SA)
    Inscrit en
    Octobre 2006
    Messages
    484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Suisse

    Informations professionnelles :
    Activité : Senior Consultant DBA (Trivadis SA)
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 484
    Points : 724
    Points
    724
    Par défaut
    Citation Envoyé par orafrance Voir le message
    Il y a aussi autre chose qui peut motiver le choix c'est le besoin ou pas de performance. Genre des tables de référence mise en cache mais dont l'accès ne nécessitent par forcément des perfs de dingues (vu que ce n'est lu qu'une fois). Ces tables pourraient être dans un datafile stocké par un disque moins rapide.
    En 12c la fonctionnalité est native

    jko
    OCM 11g, RAC and Performance & Tuning Expert 11g
    RMAN Backup & Recovery, Data Guard and Grid Control

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    laquelle ?

  16. #16
    Membre éclairé Avatar de jkofr
    Homme Profil pro
    Senior Consultant DBA (Trivadis SA)
    Inscrit en
    Octobre 2006
    Messages
    484
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : Suisse

    Informations professionnelles :
    Activité : Senior Consultant DBA (Trivadis SA)
    Secteur : Conseil

    Informations forums :
    Inscription : Octobre 2006
    Messages : 484
    Points : 724
    Points
    724
    Par défaut
    Citation Envoyé par orafrance Voir le message
    laquelle ?
    Automatic Data Optimization (ADO)

    jko
    OCM 11g, RAC and Performance & Tuning Expert 11g
    RMAN Backup & Recovery, Data Guard and Grid Control

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

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Points : 19 073
    Points
    19 073
    Par défaut
    ha oui, pas mal

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