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

SQL Oracle Discussion :

Tablespace affecté et option logging modifiés lors de la création d'objets


Sujet :

SQL Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 21
    Par défaut Tablespace affecté et option logging modifiés lors de la création d'objets
    Bonjour à tous.

    Je suis confronté à un petit souci assez étrange:

    Je crée des tables, avec une option NOLOGGING, affectées à un tablespace TBS_TOTO.

    Puis, je crée les PK dans des instructions ALTER TABLE séparées, en spécifiant les options NOLOGGING, USING INDEX, et en leur affectant le tablespace TBS_TUTU.

    Puis, je crée les FK entre les différentes tables.

    Une fois ces créations effectuées, je constate que certains (pas tous) indexs de PK (ceux créés grâce à l'instruction using index) sont en mode LOGGING, et pire, affectés à TBS_TOTO!

    Voici un exemple des créations effectuées:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    create table T_ALPHA  (
       REGION NUMBER(8) not null,
       DEPARTEMENT NUMBER(8) not null,
       CIRCONSCRIPTION NUMBER(3) not null,
       CANTON NUMBER(8) not null,
       COMMUNE NUMBER(8) not null,
       NB_VOTANTS NUMBER(8) ,
       DT_INSERSION DATE
    )
    tablespace TBS_TOTO
    nologging;
     
    alter table T_ALPHA
       add constraint PK_T_ALPHA primary key (REGION, DEPARTEMENT, CIRCONSCRIPTION, CANTON, COMMUNE)
          using index
        tablespace TBS_TUTU
         nologging;
    Avec une FK sur une autre table créée de maniere identique.

    Pourtant, plus tard, en regardant l'objet PK_T_ALPHA dans Toad, je m'aperçois qu'il est sur TBS_TOTO et en logging!

    Pourquoi?

    Merci

  2. #2
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    Je vais peut-être dire une connerie mais... Il me semble bien que les PK sont forcément dans le même tablespace que les DATA de la table, non ?

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Avril 2005
    Messages
    21
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 21
    Par défaut
    Dans ce cas, pourquoi ce n'est pas le cas pour tous les indexs de PK?

  4. #4
    Membre Expert

    Homme Profil pro
    Inscrit en
    Mars 2010
    Messages
    536
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Mars 2010
    Messages : 536
    Par défaut
    Citation Envoyé par StringBuilder Voir le message
    Je vais peut-être dire une connerie mais... Il me semble bien que les PK sont forcément dans le même tablespace que les DATA de la table, non ?
    Oui, vous avez dit une connerie

    On ne parle pas de tablespace pour PK mais pour les indexes qui couvrent les PK. Bien sûr que l'index d'une PK et sa table correspondante peuvent être mis dans des tablespaces différents
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
     
    mhouri.world > drop table t purge;
     
    Table dropped.
     
    mhouri.world > create table t (x number, y number, z number);
     
    Table created.
     
    mhouri.world > select table_name, tablespace_name
      2  from user_tables
      3  where table_name = 'T';
     
    TABLE_NAME                     TABLESPACE_NAME                                  
    ------------------------------ -------------------------                   
    T                              XXX_128_8_D                                     
     
    mhouri.world > create index non_uk_ind on t (x) tablespace XXX_128_8_i;
     
    Index created.
     
     
    mhouri.world > alter table t add constraint t_pk primary key (x) using index;
     
    Table altered.
     
    mhouri.world > select table_name, constraint_name
      2  from user_constraints
      3  where table_name = 'T';
     
    TABLE_NAME                     CONSTRAINT_NAME                                                                          
    ------------------------------ -----------------                                                        
    T                              T_PK         
     
    mhouri.world > select index_name, tablespace_name, table_name
      2  from user_indexes
      3  where table_name = 'T';
     
    INDEX_NAME                     TABLESPACE_NAME                TABLE_NAME                                                
    ------------------------------ ------------------------------ -------------                            
    NON_UK_IND                     XXX_128_8_I                   T
    On voit bien que
    1. la contrainte primary key a bien été créé
    2. aucun index supplémentaire n'a été crée pour couvrir cette PK
    3. Le seul index qui subsiste c'est celui que j'ai créé
    4. on peut même "policer" une PK via un index non unique situé dans un tablespace différent de celui de la table


    PS : "policer" : que ce mot est simple est plein d'arguments: respect d'une règle établie à ne pas transgresser que la PK est là afin de veiller à la stricte obeissance de ladite régle.

  5. #5
    Expert confirmé
    Avatar de StringBuilder
    Homme Profil pro
    Chef de projets
    Inscrit en
    Février 2010
    Messages
    4 197
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 46
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Chef de projets
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2010
    Messages : 4 197
    Billets dans le blog
    1
    Par défaut
    OK, désolé, confusion avec SQL Server alors

Discussions similaires

  1. [WD-2007] Conserver un renvoi modifié lors de la création d'un PDF
    Par Cefiroth dans le forum Word
    Réponses: 0
    Dernier message: 12/12/2013, 10h23
  2. Réponses: 1
    Dernier message: 03/03/2008, 15h26
  3. [PDF] Fichier modifiable lors d'une consultation
    Par etmim dans le forum Général Conception Web
    Réponses: 2
    Dernier message: 08/03/2007, 15h01
  4. le fichier log explose lors de la mise ajour!
    Par Babylonne dans le forum MS SQL Server
    Réponses: 10
    Dernier message: 21/09/2006, 16h49
  5. [logging] Modifier les balises de sortie XML de Java ?
    Par MiJack dans le forum Format d'échange (XML, JSON...)
    Réponses: 2
    Dernier message: 13/12/2005, 13h20

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