Oracle表空間常用操作

2021-09-01 15:57:15 字數 1588 閱讀 2483

1、建立表空間

在sql plug下,執行下面的語句

create tablespace nberp

logging

datafile 'd:\oracle\oradata\oracle9i\user_data.dbf'

size 50m

autoextend on

next 50m maxsize 2048m

extent management local;

紅色為表空間名字;

黃色為表空間檔案的路徑;

藍色為表空間的最大值;

2、轉移單個表的所屬表空間

以userinfo表為例,剛開始此表屬於表空間users,用下面的語句可以查表所屬的表空間

select table_name, tablespace_name from tabs where table_name='userinfo';

修改表的所屬表空間,用下面的sql:

alter table userinfo move tablespace nberp;

commit;

然後再用

select table_name, tablespace_name from tabs where table_name='userinfo';

確認userinfo表是否已經更改表空間了。

3、某個表空間下的所有表都轉移表空間的辦法

關鍵在於這個sql

alter table userinfo move tablespace nberp;

將黃色的表換成其他表,就能達到轉換表空間的目的;

用下面的sql拼裝某個表空間下的所有表轉移表空間的sql

select 'alter table '||table_name||' move tablespace nberp;commit;' from user_tables where tablespace_name='users';

將上面sql執行的結果,匯出來,每行記錄就表示1個表的表空間轉移,

4、轉移某錶空間下的所有索引到另乙個表空間下

關鍵sql如下,轉移單個索引到其他表空間

alter index idx_user rebuild tablespace nberp;commit;

同樣的,拼裝所有轉移索引的sql為

select 'alter index '||index_name||' rebuild tablespace newspace;commit;' from user_indexs where tablespace_name='users';

將執行結果匯出,執行結果集中拼裝的sql,改變所有的索引。

5、檢視所有表空間的最大值

select tablespace_name ,sum(bytes)/1024/1024 from dba_data_files group by tablespace_name;

6、檢視表空間的剩餘空間

select tablespace_name ,sum(bytes)/1024/1024 from dba_free_space group by tablespace_name;

Oracle 表空間常用操作

備忘 檢視表空間使用率 set lin 200 pagesize 1000 select b.tablespace name,round sum b.bytes 1024 1024,0 sum mb,round sum nvl a.bytes,0 1024 1024,0 free mb,round ...

Oracle 表空間常用操作

常用操作 檢視表空間select name from v tablespace 檢視資料檔案select name from v datafile 檢視dba表空間的資料檔案select file name,tablespace name from dba data files where tabl...

Oracle的表空間常用操作命令

背景 為什麼有這個表空間?它是什麼?怎麼理解它的存在?為了管理資料檔案,oracle提出了表空間的概念,然後oracle將資料邏輯儲存在表空間中,但實際是儲存在資料檔案中 表空間常用操作語句彙總及詳解 建立表空間 例如 create tablespace tbs platform logging d...