Précédent   Forum des professionnels en informatique > Bases de données > Oracle > SQL
SQL Forum d'entraide sur le SQL pour Oracle
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 02/09/2011, 16h54   #1
Invité de passage
 
Inscription : avril 2005
Messages : 19
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 19
Points : 4
Points : 4
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 :
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
eyghon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/09/2011, 17h00   #2
Membre Expert
 
Homme Sylvain Devidal
Chef de projets Générix
Inscription : février 2010
Messages : 1 062
Détails du profil
Informations personnelles :
Nom : Homme Sylvain Devidal
Âge : 33
Localisation : France, Rhône (Rhône Alpes)

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

Informations forums :
Inscription : février 2010
Messages : 1 062
Points : 1 515
Points : 1 515
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 ?
StringBuilder est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 02/09/2011, 18h17   #3
Invité de passage
 
Inscription : avril 2005
Messages : 19
Détails du profil
Informations forums :
Inscription : avril 2005
Messages : 19
Points : 4
Points : 4
Dans ce cas, pourquoi ce n'est pas le cas pour tous les indexs de PK?
eyghon est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2011, 09h09   #4
Membre expérimenté
 
Homme Mohamed Houri
Inscription : mars 2010
Messages : 286
Détails du profil
Informations personnelles :
Nom : Homme Mohamed Houri
Localisation : France

Informations forums :
Inscription : mars 2010
Messages : 286
Points : 563
Points : 563
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 :
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.
__________________
Bien Cordialement
www.hourim.wordpress.com
Mohamed.Houri est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2011, 09h48   #5
Membre Expert
 
Homme Sylvain Devidal
Chef de projets Générix
Inscription : février 2010
Messages : 1 062
Détails du profil
Informations personnelles :
Nom : Homme Sylvain Devidal
Âge : 33
Localisation : France, Rhône (Rhône Alpes)

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

Informations forums :
Inscription : février 2010
Messages : 1 062
Points : 1 515
Points : 1 515
OK, désolé, confusion avec SQL Server alors
StringBuilder est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 23h31.


 
 
 
 
Partenaires

Hébergement Web