Oracle查詢表佔磁碟空間大小及移動表空間

tangyunoracle發表於2010-12-18

Oracle查詢表佔磁碟空間大小計算普通表所佔空間大小:

SQL> select sum(bytes/1024) "SUM K" from user_segments where segment_name = 'TANGYUN_TEST';

SUM K

----------

64

計算表中大欄位所佔的表空間的大小:

這個計算出來的是主資料佔的位元組,不包含LOB欄位的.

SQL> select nvl(sum(bytes/1024),0) "LOB K" from user_segments where segment_name in ( select segment_name from user_lobs where table_name= 'TANGYUN_TEST');

LOB K

----------

448

包括大欄位的表所佔的表空間為先計算普通表空間的大小加上LOB欄位所佔表空間大小之和。

[@more@]

移動表空間

普通表的表空間移動:

從其他表空間把表TANGYUN移動到TBS_YYK_WBZYDATA表空間。

SQL> ALTER TABLE TANGYUN MOVE TABLESPACE TBS_YYK_WBZYDATA;

Table altered

移動索引表空間:

SQL> ALTER INDEX IDX_TANGYUN REBUILD TABLESPACE TBS_YYK_WBZYINDEX;

Index altered

移動大表的表空間:

把表TANGYUN_TEST的大欄位PPHOTOTBS_YYK_YSKDATA移動到TBS_YYK_WBZYDATA表空間。

SQL> ALTER TABLE TANGYUN_TEST MOVE TABLESPACE TBS_YYK_YSKDATA LOB(PPHOTO) STORE AS(TABLESPACE TBS_YYK_WBZYDATA);

Table altered

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/24930246/viewspace-1043278/,如需轉載,請註明出處,否則將追究法律責任。

相關文章