Tablespace and Table 的存储属性设置的实验与理解(四)

2014-11-24 17:27:07 · 作者: · 浏览: 3
K有16个,比查询出来的26个还少了10个,为什么? ?




-- 接下来看一下8号文件,即TEST3表空间,还分配了哪些块


TABLE TABLESP PCT_FREE INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS MAX_EXTENTS BLOCKS EMPTY_BLOCKS

----- ------- ---------- -------------- ----------- ----------- ----------- ---------- ------------

TEST3 TEST3 10 524288 524288 1 2147483645 26 0



还发现其他的8号文件的块:


-- class=13:'file header block'


BH (0x757d9318) file#: 8 rdba: 0x02000002 (8/2) class: 13 ba: 0x75422000


-- class=12:'bitmap index block'


BH (0x757e2528) file#: 8 rdba: 0x02000003 (8/3) class: 12 ba: 0x75518000






-- 下面测试了其他几种指定表空间、表的STORAGE属性的写法,看看对表空间、表的创建有什么影响。




SYS@PROD>create tablespace test4 datafile '/s01/app/oracle/oradata/PROD/disk1/test4.dbf' size 10M

2 default storage(initial 1024k next 512k minextents 2);



Tablespace created.



SYS@PROD>select tablespace_name,block_size,initial_extent, next_extent, min_extents,max_extents,max_size,extent_management,allocation_type,segment_space_management from dba_tablespaces where tablespace_name in ('TEST4');



TABLESP BLOCK_SIZE INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS MAX_EXTENTS MAX_SIZE EXTENT_MAN ALLOCATIO SEGMEN

------- ---------- -------------- ----------- ----------- ----------- ---------- ---------- --------- ------

TEST4 8192 65536 1 2147483645 2147483645 LOCAL SYSTEM AUTO



SYS@PROD>create tablespace test5 datafile '/s01/app/oracle/oradata/PROD/disk1/test5.dbf' size 10M

2 default storage(initial 2048k next 2048k minextents 5);



Tablespace created.



SYS@PROD>select tablespace_name,block_size,initial_extent, next_extent, min_extents,max_extents,max_size,extent_management,allocation_type,segment_space_management from dba_tablespaces where tablespace_name in ('TEST5');



TABLESP BLOCK_SIZE INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS MAX_EXTENTS MAX_SIZE EXTENT_MAN ALLOCATIO SEGMEN

------- ---------- -------------- ----------- ----------- ----------- ---------- ---------- --------- ------

TEST5 8192 65536 1 2147483645 2147483645 LOCAL SYSTEM AUTO



SYS@PROD>create tablespace test6 datafile '/s01/app/oracle/oradata/PROD/disk1/test6.dbf' size 10M uniform size 2M;



Tablespace created.



SYS@PROD>select tablespace_name,block_size,initial_extent, next_extent, min_extents,max_extents,max_size,extent_management,allocation_type,segment_space_management from dba_tablespaces where tablespace_name in ('TEST6');



TABLESP BLOCK_SIZE INITIAL_EXTENT NEXT_EXTENT MIN_EXTENTS MAX_EXTENTS MAX_SIZE EXTENT_MAN ALLOCATIO SEGMEN

------- ---------- -------------- ----------- ----------- ----------- ---------- ---------- --------- ------

TEST6 8192 2097152 2097152 1 2147483645 2147483645 LOCAL UNIFORM AUTO




--可以看到上面用STORAGE指定INITIAL的表空间TEST4,TEST5均没生效,依旧使用的是默认的64k作为INITIAL_EXTENT参数,且NEXT_INITIAL为空。只有表空间TEST6使用了UNIFORM方式,才看到INITIAL_EXTENT, NEXT_INITIAL等于了指定的2M。



ZN@PROD>create table test4(x int) tablespace test4;



Table created.




ZN@PROD>create table test5(x int) tablespace test5;



Table created.




ZN@PROD>create table test6(x int) tablespace test6;



Table created.




ZN@PROD>insert into test4 values(4);



1 row created.



ZN@PROD>commit;



Commit complete.



ZN@PROD>insert into test5 values(5);



1 row created.



ZN@PROD>commit;



Commit complete.



ZN@PROD>insert into test6 values(6);



1 row created.



ZN@PROD>commit;



Commit complete.



ZN@PROD>exec dbms_stats.gather_table_stats('ZN','TEST4');