建立測試表
create table amwu_graderecord
(sno varchar2(255),
sname varchar2(255),
dormitory varchar2(255),
grade int
)
插入110w條資料,只插入grade欄位
insert into amwu_graderecord(grade) select rownum from dual connect by level<=1100000;
查詢表占用的空間
select segment_name, sum(bytes) / 1024 / 1024 mbytese
from user_segments
where segment_name = upper('amwu_graderecord')
group by segment_name;
[b]顯示為16m[/b]
用truncate table amwu_graderecord 重新插入資料
insert into amwu_graderecord(grade,sno,sname,dormitory) select rownum,
'小李子小李子',
'小李子小李子',
'小李子小李子'
from dual connect by level<=1100000;
[b]再去查詢表占用空間,此時表占用 60m[/b]
顯示為16m
用truncate table amwu_graderecord 重新插入資料
insert into amwu_graderecord(grade,sno,sname,dormitory) select rownum,
'小李子小李子小李子小李子',
'小李子小李子小李子小李子',
'小李子小李子小李子小李子'
from dual connect by level<=1100000;
[b]再去查詢表占用空間,此時表占用 104m[/b]
由此看出:
[color=red][b]varchar2型別的字段雖然設定的比較大,但占用表物理空間大小還是取決於記錄內容的大小,占用的表空間為字段長度,每增加一條記錄,相當於給你乙個教室,字段過長,相當於乙個教室只有乙個學生,字段合理,相當於乙個教室都坐滿了學生[/b][/color]
oracle空間欄位shape維護
首先說以shape欄位在oracle中會被自動解析為5個子字段,分別是shape.sdo gtype,型別分為點,線,麵等,點是指只有一組座標代號為2001,線就是兩個點了也就是有兩組座標2002後面的應該都知道了,然後就是shape.sdo srid,shape.sdo point.x,shape...
ORACLE查詢每個表占用空間大小
select select sum bytes from dba segments where owner testbar and segment type table and segment name table name from user tables 錯誤的,對於oracle而言,雙引號 要...
mysql和oracle查詢表占用空間
mysql 需要先進入information schema select table schema as 資料庫 table name as 表名 table rows as 記錄數 truncate data length 1024 1024,2 as 資料容量 mb truncate index...