3.使用段 ●两个数据库放在同一设备的不同段上,它们不会相互影响; ●当数据库增加空间时,增加的空间会自动分配到它的每一个段上; 例如:alter database my_db on data_dev=50 在data_dev设备上为my_db增加50M空间,这50M空间被自动分配到数据库的每一个段中。注意:如果data_dev对于数据库是新的,system和default段会自动扩展到该设备上。 可以使用alter database命令的log on选项分配附加的日志空间。 (1)在段中创建新对象 create table 表名(列名 数据类型)[on 段名] create [clusterd|non clusterd]index 索引名 on 表名(列名)[on 段名] 注意:按照定义,聚集索引总是与表放在同一段上。 (2)在段上放置现有对象 sp_placeobject 段名,对象名 注意:该命令并不把对象从一个数据库设备移动到另一设备上,它只影响未来的空间分配。 可以将某个大表的text字段或image字段放置到一个单独的设备段上。 Sp_placeobject 段名,“表名.字段名” (3)在段上创建聚集索引 按照定义,聚集索引总是与表放在同一段上。如果在一个段上创建表,而在另一个段上创建聚集索引,则其表与其索引一起移动,整个表将离开创建表的段而迁移到创建聚集索引的段中。通过这种方法,可以快速而方便地把指定表移动到指定的设备上。 (4)系统预定义段 当用户创建一个数据库时,Sybase自动创建三个预定义的段: system段:存放系统表(包括所有用户对象的定义) default段:存放用户创建的各种对象,除非它们明显地指定到不同的段上。 Logsegment段:存放数据库的事务日志。 (5)删除段 删除段是缩小段范围的一个特例: sp_dropsegment 段名,数据库名 4.使用阈值管理 阈值(Threshold)管理是一种自动监控数据库自由空间的机制,Sybase的阈值管理允许用户为数据库的某个段上的自由空间设置阈值并定义相应的存储过程。当该段上的自由空间低于所置头阈值时,Sybase自动运行相应的存储过程。 在一个实际运行的数据库中,日志的增长速度一般要高于数据的增长,一旦日志段的自由空间用尽,SQL Server在默认情况下会挂起所有数据操纵事务,客户端应用程序停止执行。 在每个分离的段上存储其事务日志的数据库均自动设置有最后机会阈值(Last Chance Threshold),其阈值是备份事务日志所需的自由空间的估计值。当该段上的自由空间低于所置阈值时,Sybase自动运行名为sp_thresholdaction的存储过程。该过程的名称及参数由系统预定义,内容由用户编写。下面是一个简单示例。 CREATE PROCEDURE dbo.sp_thresholdaction /*本过程参数通过位置传递,名称可以改变,但其定义及顺序不能变*/ @db_name varchar(30),/*数据库名*/ @seg_name varchar(30),/*段名*/ @space_lefe int,/*剩余自由空间*/ @status int/*最后机会阈值,其值为1,其它阈值,其值为0*/ AS BEGIN /*用户编写过程内容*/ dump transaction @db_name with truncate_only
END
|