一个块存储一条记录的巧妙设计

来源:互联网 发布:vb系列游戏是什么 编辑:程序博客网 时间:2024/06/05 06:33
--因为块大小等于8K,每个块存储一个行--因为块大小等于8K,所以创建7.K的行,则一个行占据一个块。--PCTFREE=10,因此一个行在8K*0.9=7.2K以上,就可以占据一个块。总共长度为7500bytesSQL> create table hwm_test(  2  name1 char(2000) default '',  3  name2 char(2000) default '',  4  name3 char(2000) default '',  5  name4 char(1500) default '');Table created.SQL> select replace(name1,' ',''),replace(name2,' ',''),replace(name3,' ',''),replace(name4,' ','') from hwm_test;REPLACE(NA REPLACE(NA REPLACE(NA REPLACE(NA---------- ---------- ---------- ----------1   1      1  12   2      2  2SQL> select count(distinct dbms_rowid.rowid_block_number(rowid))from hwm_test;COUNT(DISTINCTDBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID))---------------------------------------------------  2SQL> insert into hwm_test values(3,3,3,3);1 row created.SQL> commit;Commit complete.SQL> select count(distinct dbms_rowid.rowid_block_number(rowid))from hwm_test;COUNT(DISTINCTDBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID))---------------------------------------------------  3SQL> insert into hwm_test values(4,4,4,4);1 row created.SQL> commit;Commit complete.SQL> select count(distinct dbms_rowid.rowid_block_number(rowid))from hwm_test;COUNT(DISTINCTDBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID))---------------------------------------------------  4SQL> select rowid,dbms_rowid.rowid_block_number(rowid) from hwm_test;ROWID   DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID)------------------ ------------------------------------AAAoxhAALAAACsKAAA  11018AAAoxhAALAAACsLAAA  11019AAAoxhAALAAACsMAAA  11020AAAoxhAALAAACsNAAA  11021通过dbms_rowid.rowid_block_number(rowid)找到记录对应的block号

0 0
原创粉丝点击