Oracle tip #9 [Oracle Create Table Space]
I Tablespace in Oracle sono definizioni di spazio fisico sul disco , la loro gestione è molto comoda dato che ad esempio per un database è possibile creare più tablespace anche su unità disco diverse.
Il codice per creare un nuovo file e allocarlo su un server oracle è semplicissimo :
1 2 3 4 5 6 7 |
CREATE TABLESPACE <nome_logico_tablespace> LOGGING DATAFILE <nome_fisico_table_space> /*ad esempio: '/usr/lib/oracle/xe/oradata/XE/vendordata.dbf' */ SIZE 256m AUTOEXTEND ON NEXT 32m MAXSIZE 2048m EXTENT MANAGEMENT LOCAL; |
ad esempio per creare una tabella in un table space definito è sufficiente specificarlo alla fine dello script di creazione della stessa come si può facilmente intuire dallo script che segue :
1 2 3 4 5 6 |
create table subjects ( subject_id number not null, subject_name varchar2(30) not null, description varchar2(4000) ) tablespace [table space name]; |
la stessa cosa vale anche per la creazione di indici e quant’altro.
Nel caso si voglia rimuovere invece un table space la sintassi per rimuoverlo è :
1 2 3 |
DROP TABLESPACE <nome_logico_tablespace> INCLUDING CONTENTS CASCADE CONSTRAINTS; |
in questo caso però il file fisico precedentemente creato rimarrà sul filesystem il che significa che sarà ancora ripristinabile.
Per permettere ad un utente di accedere al table space :
1 |
ALTER USER <nomeutente> QUOTA UNLIMITED ON <nome logico tablespace>; |
invece per essere sicuri che un utente non possa accedere a tale table space :
1 |
ALTER USER <nomeutente> QUOTA 0 ON <nome logico tablespace>; |
3 risposte
Ma poi per usarlo come si fa, ad esempio per creare una tabella in quel tablespace?
create table .?
ho modificato il post inserendo un esempio di creazione di una tabella…
mistico