本文主要是介绍统一区大小表空间和系统管理区表空间规则区别,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
--统一区大小表空间和系统管理区表空间规则区别--统一区大小表空间EODA@PROD1> create tablespace tbs_ts1 datafile '/u01/app/oracle/oradata/PROD1/tbs1.dbf' size 50m uniform size 1m; --创建表空间中子句使用uniform size则是统一区大小Tablespace created.EODA@PROD1> create table t1 (id varchar2(20)) tablespace tbs_ts1;Table created.EODA@PROD1> insert into t1 select 'abc' from all_objects;72969 rows created.EODA@PROD1> insert into t1 select 'abc' from all_objects;72969 rows created.EODA@PROD1> insert into t1 select 'abc' from all_objects;72969 rows created.EODA@PROD1> commit;Commit complete.EODA@PROD1> select extent_id, file_id, block_id, blocks from dba_extents where segment_name='T1' order by extent_id; --所有区都是128个块,本库块大小为8KB,所以区大小就是1MBEXTENT_ID FILE_ID BLOCK_ID BLOCKS
---------- ---------- ---------- ----------0 16 128 1281 16 256 1282 16 384 1283 16 512 128--系统管理区大小表空间
EODA@PROD1> create tablespace tbs_ts2 datafile '/u01/app/oracle/oradata/PROD1/tbs2.dbf' size 50m reuse; --不指定uniform则是系统管理Tablespace created.EODA@PROD1> create table t2 (id varchar2(20)) tablespace tbs_ts2;Table created.EODA@PROD1> insert into t2 select 'abc' from all_objects;72970 rows created.EODA@PROD1> insert into t2 select 'abc' from all_objects;72970 rows created.EODA@PROD1> insert into t2 select 'abc' from all_objects;72970 rows created.EODA@PROD1> commit; Commit complete.EODA@PROD1> select extent_id, file_id, block_id, blocks from dba_extents where segment_name='T2' order by extent_id; --可以看到前16个区大小为8个块,即64KB,第16个区增大为区大小1MB,如果表进一步扩大,区大小会变成8MB,以此往复。EXTENT_ID FILE_ID BLOCK_ID BLOCKS
---------- ---------- ---------- ----------0 17 128 81 17 136 82 17 144 83 17 152 84 17 160 85 17 168 86 17 176 87 17 184 88 17 192 89 17 200 810 17 208 811 17 216 812 17 224 813 17 232 814 17 240 815 17 248 816 17 256 12817 17 384 12818 rows selected.
这篇关于统一区大小表空间和系统管理区表空间规则区别的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!