oracle alter table allocate extent,在10G中alter table allocate extent的疑问?

版本为hp-ux平台的10.2.0.2

数据库存在表空间:

SQL>  select tablespace_name, extent_management, segment_space_management from dba_tablespaces;

TABLESPACE_NAME                                              EXTENT_MANAGEMENT    SEGMENT_SPAC

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

SYSTEM                                                       LOCAL                MANUAL

UNDOTBS1                                                     LOCAL                MANUAL

SYSAUX                                                       LOCAL                AUTO

TEMP                                                         LOCAL                MANUAL

TEST                                                         LOCAL                MANUAL

用用户test在TEST表空间建一个表:

SQL> create table t(id number) tablespace test;

Table created.

查看extent分布情况:

SQL>  select extent_id, file_id, block_id, blocks, bytes/1024 from dba_extents where segment_name='T';

EXTENT_ID    FILE_ID   BLOCK_ID     BLOCKS  BYTES/1024

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

0          6                265                     8            64

然后手动分配extent:

SQL> alter table t allocate extent (size 1m);

Table altered.

再次查看extent分布情况:

SQL> /

EXTENT_ID    FILE_ID   BLOCK_ID     BLOCKS BYTES/1024

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

16          6        393        128       1024

15          6        385          8         64

14          6        377          8         64

13          6        369          8         64

12          6        361          8         64

11          6        353          8         64

10          6        345          8         64

9          6        337          8         64

8          6        329          8         64

7          6        321          8         64

6          6        313          8         64

EXTENT_ID    FILE_ID   BLOCK_ID     BLOCKS BYTES/1024

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

5          6        305          8         64

4          6        297          8         64

3          6        289          8         64

2          6        281          8         64

1          6        273          8         64

0          6        265          8         64

17 rows selected.

为什么分配这么多extent?1到15的都是64K的,只有最后一个是1m,正是我分配的大小,中间这些是怎么多出来的?

db_block_size=8k,TEST表空间上只有这一个表

而在9204上同样的案例是:

SQL> select extent_id, file_id, block_id, blocks, bytes/1024 from dba_extents where segment_name='T';

EXTENT_ID    FILE_ID   BLOCK_ID     BLOCKS BYTES/1024

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

0          4          9          8         64

1          4        137        128       1024

高手解答一下

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值