ITPub博客

首页 > Linux操作系统 > Linux操作系统 > records_per_block参数

records_per_block参数

原创 Linux操作系统 作者:Power08 时间:2013-11-19 20:41:48 0 删除 编辑
        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 blockBuffer 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> 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> 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
 ★不能在含有位图索引的表上使用此参数
3.
 SQL> create table t(id int,name char(5));
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          2

11 rows selected.

RECORDS_PER_BLOCK参数的最小值为2



来自 “ ITPUB博客 ” ,链接:http://blog.itpub.net/29014732/viewspace-777029/,如需转载,请注明出处,否则将追究法律责任。

下一篇: truncate 研究
请登录后发表评论 登录
全部评论

注册时间:2013-07-01

  • 博文量
    17
  • 访问量
    44481