Monday 5 September 2011

Tablespace Oracle

Composant logique Oracle

 
 
 Définition:
Un tablespace est un espace logique qui contient les objets stockés dans 
la base de données comme les tables ou les indexes.
Un tablespace est composé d'au moins un datafile, c'est à dire un fichier de données
qui est physiquement présent sur le serveur à l'endroit stipulé lors de sa création.
Chaque datafile est constitué de segments d'au moins un extent (ou page) lui-même
constitué d'au moins 3 blocs : l'élément le plus petit d'une base de données. 

Exemple de création de table space 
SQL>CREATE TABLESPACE  tabledata DATAFILE 
       'C:\oracle\oradata\oradba\tabledata.ora' 
        SIZE 75M DEFAULT storage
     (INITIAL 100k NEXT 100k minextents 1 MAXEXTENTS unlimited pctincrease 0);

Remarque : changer le chemin selon votre installation de la base de données 
          dans mon cas ('C:\oracle\oradata\oradba').

SQL> CREATE TABLESPACE tableindex DATAFILE
     'C:\oracle\oradata\oradba\tableindex.ora' size 100M default storage
      (INITIAL 100k NEXT 100k minextents 1 MAXEXTENTS unlimited pctincrease 0);

SQL>Select * from dba_tablespace_usage_metrics order by used_percent desc;

TABLESPACE_NAME                USED_SPACE             TABLESPACE_SIZE        USED_PERCENT           
------------------------------ ---------------------- ---------------------- ------------- 
SYSTEM                         91048                  2338840                3.892 
SYSAUX                         84656                  2306840                3.66 
TABLEINDX                      128                    12800                  1                      
TABLEDATA01                    128                    19200                  0.667 
EXAMPLE                        9960                   2228760                0.446
UNDOTBS1                       1968                   2221028                0.088
USERS                          968                    2217080                0.043
TEMP                           0                      2216548                0                      
 8 rows selected 


Pour Modifier la taille du table space

SQL>ALTER DATABASE datafile 'C:\oracle\oradata\oradba\tabledata.ora' resize 150M;

Pour modifier le tablespace system

SQL>ALTER TABLESPACE SYSTEM add datafile  'C:\oracle\oradata\oradba\tableadd.ora' size 140M;

Définition  d'un tablespace temporaire
Un tablespace temporaire est un tablespace spécifique aux opérations 
de tri pour lesquelles la SORT_AREA_SIZE  ne serait pas suffisamment grande.
Ce tablespace n'est pas destiné à accueillir des objets de la base de données 
et son usage est réservé au système. 
 
Pour créer un table space Temporaire, utilisez le mot clé Tempfile
au lieu du mot Datafile

SQL>CREATE TEMPORARY TABLESPACE tabletemp  TEMPFILE
     'C:\oracle\oradata\oradba\tabletempuser.ora' size 10M ;

Création d'un utilisateur et attacher à un tablespace.
Attribuer un nom utilisateur et votre mot de passe.

SQL>CREATE USER  NOM_USER identified by MOTPASSE
        DEFAULT TABLESPACE tabledata TEMPORARY TABLESPACE tabletemp;