froster

博客园 首页 新随笔 联系 订阅 管理

自己翻译的Oracle® Database Concepts 10g Release 2 (10.2) Part Number B14220-01
以及sybase system administration guide v2.
在感觉上sybase的文档不如oracle的好。

Oracle的Segment

Segment是在extent的上一级的数据库逻辑存储概念。一个Segment由一组具有相同的确定逻辑结构的

Extent组成。Segment有如下几种类型:

数据段(Data Segment)
每个非聚集表有一个Data Segment.所有该表的数据存储在该Data Segment上的extents中。
对于一个分区表,每个分区都有一个Data Segment.
每一个cluster有一个Data Segment.在cluster中的每个表的数据存储在该cluster的Data Segment中。

索引段(Index segment)
每个索引有一个Index segment,用来存储该索引的数据。
对于一个分区索引,每个分区都有一个Index segment.

临时段(Temporary segment)
Temporary segments在SQL语句需要一个临时数据库空间以完成执行的时候由Oracle创建。当语句执行完

毕,Temporary segment中的extents会收归系统,以备后用。

回滚段(Rollback segment)
如果使用自动重做管理模式,则数据库服务器使用表空间(Tablespaces)管理重做空间。Oracle推荐使用

自动重做管理模式。
Oracle早期版本使用回滚段(Rollback segment)存储重做信息。这些信息在生成read-consistent数据库

信息和为用户回滚未提交事务这两种情况下的数据库恢复所使用。
这种回滚段的空间管理方式很复杂,Oracle不赞成这种方法。一般我们只讨论managing undo(可管理重做

?)的重做表空间方法,这消除了管理回滚段的空间的复杂性,以尽量将目光放在“在被覆盖前undo数据

保持了多久”的控制上。
Oracle使用一个系统回滚段以执行系统事务。仅有一个系统回滚段,他是在创建数据库时被自动创建的,

且总是在实例启动时在线。不需要执行任何操作来管理系统回滚段。


Oracle在现有extents满了后动态地分配空间,换言之,当一个段的扩展区(extents)满了之后,Oracle分

配另一个扩展区给这个段。因为扩展区是按需分配的,所以同一个段中的扩展区在磁盘上的存储可能不连

续。

 

sybase的segment(段)
段是一个指向一个或多个数据库设备的标识(label)。段名称在使用创建表或创建视图命令时,用以指定

表或视图存储的数据库设备的时候使用。使用段可以增强Adaptive Server的性能,使得系统管理员(或数

据库所有者)增加对数据库对象的放置、大小以及空间使用情况的控制。
在数据库中创建段是用以描述分配给数据库的设备。每个数据库可包含最多32个段(包括系统定义的段在

内)。在为段指定名字前,必须使用disk init初始化数据库设备且使用create database(或alter

database)使得数据库设备可用。

当创建数据库时,Adaptive Server创建了三个段。
System
存储数据库系统表
logsegment
存储数据库的事务日志
default
存储所有其他数据库对象,除非创建了更多的段并且存储表或索引在新段上。(create table/index...on

segment_name)

如果在一个数据库设备上创建数据库,则该三个系统的段标识在同一个设备上。可以使用log on子句将事

务日志放在另一个设备上。
可以增删用户定义段,但不能删除系统创建的这三个段。

管理段的命令和存储过程如下:
sp_addsegment:定义段
create table/index:在段上创建对象
sp_dropsegment:从数据库中移除段或从段中移除一个设备
sp_extendsegment:将设备加入到一个已存在的段中
sp_placeobject:在指定的段上为表(或视图)分区分配空间
sp_helpsegment:显示数据库的段分配情况或某个段中数据分配的情况
sp_helpdb:显示在每个数据库设备上的段
sp_help:显示表的信息,包括表所在的段
sp_helpindex:显示索引的信息,包括索引所在的段


当向数据库中添加新设备时,服务器将新设备放在缺省空间池中(即default和system段)。在一个段上创

建对象时,该对象可以使用这个段上的所有数据库设备空间,但不能使用其他设备。

使用段可以:
控制空间的使用
提高性能
分离表、索引和日志
分区表(splitting, partition)
部分装载(Partial loading)
分离text和image列
移动表到另一个设备

 

posted on 2006-03-28 09:10  大牛  阅读(451)  评论(0)    收藏  举报