l RECORDS_PER_BLOCK参数用于设定每个BLOCK中记录数的最大值,其先找到当前表所有BLOCK中容纳的最大行数,并会把这个数字记录到数据字典,以后任何导致 BLOCK行数超过这个数字的插入都会被拒绝(插入另一个块中)。l 不能对空表设定此参数。
l 每个BLOCK中可以包含的记录数的最低下限是2。
l 不能在已经有 bitmap 的表中使用records_per_block参数,也就是说,如果要使用records_per_block参数,必须先alter table xxx minimize records_per_block,然后才能在表上建立索引。
如果字段的类型、大小、个数发生了改变,那么就会导致一个比较差的结果,这就说明了,这项功能只在于使用在静态的环境中,比如数据仓库。主要用途:
l 通过减少同一个block中的记录数,使记录分布于更多的数据块中,可以优化等待块类型为data block的Buffer Busy Wait事件。
l 其主要用途是提高BITMAP INDEX的存储性能
实验:1.SQL> create table t (id int,name char(3));Table created.SQL> alter table t minimize records_per_block;alter table t minimize records_per_block*ERROR at line 1:ORA-28603: statement not permitted on empty tables★空表不能设定此参数2.SQL> begin2 for i in 1..203 loop4 insert into t values(i,'a'||i);5 end loop;6 end;7 /PL/SQL procedure successfully completed.SQL> create bitmap index t_index on t(id);Index created.SQL> alter table t minimize records_per_block;alter table t minimize records_per_block*ERROR at line 1:ORA-28602: statement not permitted on tables containing bitmap indexes★不能在含有位图索引的表上使用此参数SQL> create table t(id int,name char(5));3.
Table created.
SQL> insert into t values(1,'a');
1 row created.
SQL> alter table t minimize records_per_block;
Table altered.
SQL> select dbms_rowid.rowid_block_number(rowid),count(*) from t group by dbms_r
owid.rowid_block_number(rowid);
DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID) COUNT(*)
------------------------------------ ----------
29562 1
SQL> begin
2 for i in 1..20
3 loop
4 insert into t values(i,'a'||i);
5 end loop;
6 end;
7 /
PL/SQL procedure successfully completed.
SQL> select dbms_rowid.rowid_block_number(rowid),count(*) from t group by dbms_r
owid.rowid_block_number(rowid);
DBMS_ROWID.ROWID_BLOCK_NUMBER(ROWID) COUNT(*)
------------------------------------ ----------
29779 2
29565 2
29562 2
29778 2
29567 2
29564 2
29780 1
29563 2
29566 2
29568 2
29777 211 rows selected.
★RECORDS_PER_BLOCK参数的最小值为2
来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29014732/viewspace-777029/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/29014732/viewspace-777029/