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 :

taille de CREATE TABLE


Sujet :

Administration Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Inscrit en
    Septembre 2010
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 82
    Par défaut taille de CREATE TABLE
    BONJOUR,

    JE suis à la recherche d'information sur le CREATE TABLE.
    Je comprend pas bien l'anglais et la documentation d'Oracle.

    Mon problème est simple. J'ai une énorme table environ 15GB. Cette table grandit vite (500MB par semaine).

    Je vais partitioner cette table en OFFLINe (donc sans dbms_redefinition) en faisnt un CREATE TABLE ... puis en copiant les données d'une table à cette nouvelle table puis en renommant les deux tables pour que la seconde prenne la place de la première table.

    Donc, j'ai déjà une table avec plus de 15GB de données.

    Je voudrais créer la seconde table en spécifiant un STORAGE (INITIAL 10G NEXT 1G). Au niveau du tablespace, ces valeurs sont de 64MB pour l'initial et null pour le next et le max extends est de 2G. Le tablespace est en AUTO pour segment_space_management.

    Comme je trouvais ces valeurs très petite par rapport à la taille de la table, je voulais mettre un initial de 10G. Mais la documentation est assez légère par rapport à cet attribut.

    Est-ce que quelq'un pourrait me conseiller?

    merci et bon week-end à vous

  2. #2
    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
    Comment répondre ? Vous ne précisez même pas votre version !

  3. #3
    Membre éprouvé
    Inscrit en
    Septembre 2010
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 82
    Par défaut
    Citation Envoyé par Waldar Voir le message
    Comment répondre ? Vous ne précisez même pas votre version !
    J'utilise Oracle 10.2.0.4.
    Désolé, j'avais oublié.

  4. #4
    Membre émérite
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2007
    Messages
    419
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Novembre 2007
    Messages : 419
    Par défaut
    Bonjour,

    si ton tablespace est en auto, oublie les précisions d'initial et next car c'est oracle qui choisit la taille selon ses algorithmes.(tu voulais bien dire en autoallocate?).
    sinon, 10Go, 1Go ça me semble absolument démesuré. songe qu'à chaque partition créée, tu aurais un extent d'un Go par partition, même vide!
    tu partitionnes comment? as-tu une idée de la taille que fera chaque partition?
    si certaines partitions sont destinées à ne plus bouger, c'est à dire qu'elles deviennent en quelque sorte des archives historiques, tout l'intérêt du partitionnement au niveau administratif est que ces partitions pourront être placées en lecture seule et n'auront plus besoin d'être sauvegardées aussi souvent que la base en entier. dans ce cas, il faudrait penser dès maintenant à créer un tablespace où tu mets la partition de ta table que tu pourras un jour passer en lecture seule et compresser éventuellement.
    au niveau des performances, des segments de 1G ou 10Go risquent d'être très pénalisants, même si tu tapes bien dans les partitions que tu souhaites directement avec le partition pruning.

  5. #5
    Membre éprouvé
    Inscrit en
    Septembre 2010
    Messages
    82
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 82
    Par défaut
    Je partitionne de manière composite. La clé de partitionnement principale est basée sur une date. La clé de sous-partionnement est un hash (8 sous partitions par partition).

    La taille des sous-paritions seront d'environ 500MB chacune; et est constant.

    Donc, pour toi l'idéal serait de gérer la taille au niveau du tablespace. Mais bien que démesurée, immagine que je ne crée un tablespace que pour cette table et ses partitions, tu choisirais quel allocation type? (SYSTEM, UNIFORM SIZE...) avec quel initial, et surtout pourquoi

    Je suis vraiment perdu dans ce charabia moi

  6. #6
    Membre émérite
    Femme Profil pro
    Administrateur de base de données
    Inscrit en
    Novembre 2007
    Messages
    419
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : France

    Informations professionnelles :
    Activité : Administrateur de base de données

    Informations forums :
    Inscription : Novembre 2007
    Messages : 419
    Par défaut
    laissons tomber l'histoire des tablespaces dédiés. tu pourras toujours tuner ça plus tard en déplaçant des partitions ailleurs. ce que je voulais juste souligner, c'est que si ton tablespace ets en autotallocate, je pense qu'oracle ne tiendra pas compte de tes préconisations en matière de taille et si tu le mets dans un tablespace en LMU, la taille de ton initial et de ton next seront la taille de l'extent avec lequel le tablespace a été construit. C'est bien pour ça qu'on appelle cela le segment space management auto.
    Tu me demandes ce que je ferais à ta place? je contruirais un tablespace en LMU de 128Mo parce que la taille de ta table va être assez grosse au final (mais pas suffisamment pour risquer de gâcher de l'espace avec des extents de 1024Mo, vu que tes partitions vont faire dans les 500Mo), je contruirais ensuite la table et j'exécuterais les requêtes les plus courantes sur celles-ci pour avoir une idée du coût. tu peux faire la même chose avec un tablespace monté à 256Mo ou 512Mo, et tester. tu te rendras vite compte de ce qui est le mieux pour ta table. Par la même occasion tu verras aussi si tes critères de partitionnement son efficaces ou pas.
    Au besoin tu fais ça dans une base de test.
    Je suis désolée mais il n'y a pas de réponse toute faite selon moi. Il faut mettre ses conceptions à l'épreuve du réel
    et puis ne pas oublier de faire les index en local...

Discussions similaires

  1. CREATE TABLE .... AS SELECT
    Par blids dans le forum SQL
    Réponses: 5
    Dernier message: 13/10/2016, 14h00
  2. create table
    Par boucher_emilie dans le forum ASP
    Réponses: 3
    Dernier message: 08/07/2004, 17h08
  3. [DB2] create table... if not exists ?
    Par iubito dans le forum DB2
    Réponses: 6
    Dernier message: 23/03/2004, 18h26
  4. Create table + jointure
    Par ender999 dans le forum Débuter
    Réponses: 7
    Dernier message: 20/02/2004, 12h04
  5. Database new user & create table
    Par MFDev dans le forum InterBase
    Réponses: 3
    Dernier message: 30/09/2003, 20h47

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