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 :

calcul de taille pour creation de table


Sujet :

Administration Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé

    Inscrit en
    Octobre 2003
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 188
    Par défaut calcul de taille pour creation de table
    Bonjour.

    j'utilise une base oracle 8i sur une machine Win2000Server (tout cela est, certes, obsolètes mais, sauf erreur de ma part, sans incidence pour ce qui m'interesse)

    J'ai une table composeé comme suit :
    champ1 number(10)
    champ2 number(10)
    champ3 date
    champ4 number(10)
    champ5 varchar2(1)

    cette table a été déclarée avec un initial extent à 2Go.
    En moyenne 22000 entrées/jour
    Il n'y a pas de mise à jour des champs mais de la suppression d'enregistrements (notion de doublons)
    Le block-size de la base vaut 8192.
    Si j'ai tout bien compris, un enregistrement vaut
    number(10) = 6 octets
    number(10) = 6 octets
    date = 7 octets
    number(10) = 6 octets
    varchar2(1) = 1 octet
    soit 26 octet soit 0,3% du bloc.

    Avec tout ça, ai-je raison de vouloir créer une copie de cette table avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
      ...
      pctfree 40
      pctused 80
      storage ( initial 500 M  
                   next à 100 M
                   ....
                 )
      ...
    Merci de votre aide.

  2. #2
    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 : 59
    Localisation : France

    Informations professionnelles :
    Activité : DBA Oracle freelance

    Informations forums :
    Inscription : Janvier 2005
    Messages : 670
    Par défaut
    Bonjour,
    en utilisant la fonction dbms_space.create_table_cost avec un pctfree à 0, cela donne
    pour 22 000 lignes :
    Used Bytes: 761856
    Allocated Bytes: 786432

    Donc pour 1 an : 22 000 x 365 = 8030000
    Used Bytes: 277561344
    Allocated Bytes: 285212672

    Pourquoi donc laisser 40% d'espace inutilisé puisque les lignes ne sont pas mises à jour ?

    Sur un an, la table occupera environ 272 Mo.
    De mémoire, les tablespaces locally managed sont apparus en 8i.
    Donc, je mettrai cette table dans un TS géré en LMT.
    Sinon (en DMT), je la taillerais ainsi :
    initial 300M, next 10M, pctincrease 0
    Le nombre d'extensions n'est pas très important, il faut simplement que les extensions soient uniformes.

  3. #3
    Membre confirmé

    Inscrit en
    Octobre 2003
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 188
    Par défaut
    Je croyais que le pctfree correspondait à la taille à partir de laquelle Oracle considère le bloc comme étant "réutilisable". C'est pour cela que je l'avais mis à 40%.
    Au regard de ton explication, j'en conclus qu'il faut mettre le pctused à 100%. Ce qui signifierait que tant que le bloc n'est pas plein, il peut stocker des données dedans. Me trompe-je?

  4. #4
    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 : 59
    Localisation : France

    Informations professionnelles :
    Activité : DBA Oracle freelance

    Informations forums :
    Inscription : Janvier 2005
    Messages : 670
    Par défaut
    Allez, un peu de promo pour le site et FP :
    http://blog.developpez.com/pachot/p8...free-initrans/

  5. #5
    Membre confirmé

    Inscrit en
    Octobre 2003
    Messages
    188
    Détails du profil
    Informations forums :
    Inscription : Octobre 2003
    Messages : 188
    Par défaut
    Si j'ai tout bien compris, le pctfree c'est l'espace qu'oracle doit garder libre pour l'évolution du contenu du block du fait de la mise à jour de champs.
    'vais m'coucher un peu moins bête ce soir moi

    Pour le pctused, moyennant d'utiliser ASSM, je l'oublie. Alors bon je vais investiguer sur ASSM.

    En tout cas, merci de ton aide.

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

Discussions similaires

  1. Calculer la taille d'un record d'une table
    Par freud dans le forum Firebird
    Réponses: 10
    Dernier message: 16/09/2008, 16h20
  2. Table de Formules pour creation de table à exporter
    Par buzz73 dans le forum Requêtes et SQL.
    Réponses: 5
    Dernier message: 02/09/2008, 22h03
  3. Creation de table pour access
    Par Tsukaasa dans le forum JDBC
    Réponses: 0
    Dernier message: 12/08/2008, 17h51
  4. augmenter la taille pour une table mysql
    Par zidenne dans le forum SQL Procédural
    Réponses: 1
    Dernier message: 21/08/2006, 15h01
  5. Réponses: 2
    Dernier message: 13/05/2006, 13h25

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