WEB开发网
开发学院数据库Oracle Oracle数据库中利用ASSM改善分段存储 阅读

Oracle数据库中利用ASSM改善分段存储

 2007-05-09 12:14:19 来源:WEB开发网   
核心提示: 位图freelist挑战传统的空间管理在我讨论位图freelist和传统的空间管理之前,让我们看看位图freelist是如何实现的,Oracle数据库中利用ASSM改善分段存储(2),我会从使用区段空间管理自动参数创建tablespace开始:create tablespace asm_l

位图freelist挑战传统的空间管理

在我讨论位图freelist和传统的空间管理之前,让我们看看位图freelist是如何实现的。我会从使用区段空间管理自动参数创建tablespace开始:  create tablespace
    asm_lmt_ts
  datafile
    'c:oracleoradatadiogenesasm_lmt.dbf'
  size
    5m
  EXTENT MANAGEMENT LOCAL    -- Turn on LMT
  SEGMENT SPACE MANAGEMENT AUTO -- Turn on ASSM
  ;

一旦你定义好了tablespace,那么表格和索引就能够使用各种方法很容易地被移动到新的tablespace里。下面就是我进行创建的代码:  
  create table
    new_cust
  tablespace
    assm_lmt_ts
  as
    select * from customer;
  
  alter index cust_name_idx rebuild tablespace assm_lmt_ts;

要注意,当表格或者索引被分配到这个tablespace以后,用于独立对象的PCTUSED的值会被忽略,而Oracle9i会使用位图数组来自动地管理tablespace里表格和索引的freelist。对于在LMT的tablespace内部创建的表格和索引而言,这个NEXT扩展子句是过时的,因为由本地管理的tablespace会管理它们。但是,INITIAL参数仍然是需要的,因为Oracle不可能提前知道初始表格加载的大小。对于ASSM而言,INITIAL最小的值是三个区块。

关于一个万能的方法对于Oracle来说是否是最好的方法还有一些争论。在大型数据库里,单独的对象设置会带来性能和存储上的巨大不同。

PCTFREE的问题

PCTFREE参数是用来指定数据块剩余空间大小的,这一空间为将来数据行的扩展而保留。如果PCTFREE设置得不得当,SQL的更新声明就可能导致大量的数据行碎片和断链。

Tags:Oracle 数据库 利用

编辑录入:爽爽 [复制链接] [打 印]
赞助商链接