sp_addsegment <segname>, <dbname>, <devname>
是要添加到数据库的 syssegments 表中的新段的名称。段名在每个数据库中都是唯一的。
指定在其中定义段的数据库的名称。<dbname> 必须是当前数据库的名称或符合限定 sp_addsegment 的数据库名称。
是在其中定位 <segname> 的数据库设备的名称。数据库设备可以有多个与之关联的段。
在名为 dev1 的数据库设备上为数据库 pubs2 创建一个名为 indexes 的段:
sp_addsegment indexes, pubs2, dev1
在名为 pubs2_dev 的数据库设备上为 pubs2 数据库创建一个名为 indexes 的段:
disk init
name = "pubs2_dev",
physname = "/dev/pubs_2_dev",
vdevno = 9, size = 5120
go
alter database pubs2 on pubs2_dev = 2
go
pubs2..sp_addsegment indexes, pubs2, dev1
使用 sp_addsegment 时,还存在一些其它注意事项:
A segment with a virtually hashed table exists on device orders_dat.
sp_addsegment 为数据库设备定义段名,这些数据库设备通过 disk init 创建并通过 alter database 或 create database 命令分配到特定数据库。
create table 和 create index 命令以及 sp_placeobject 过程中,以便在段上放置一个表或索引。
sp_extendsegment 可以将段的范围扩展到同一个数据库所使用的另一个数据库设备。
alter database 在数据库使用的设备上对该数据库进行扩展,则还将对映射到该设备的段进行扩展。
system 和 default 段会被映射到 create database 或 alter database 命令中包括的每个数据库设备。logsegment 也会被映射到每个设备,除非您使用 create database 的 log on 扩展或使用 sp_logdevice 将其放在单独的设备上。
sp_addsegment(例如在不使用 log on 选项创建数据库时),但如果使用以下语句创建数据库,SAP ASE 服务器将返回一条错误消息:
create database <dbname> on <devicename> log on <devicename> with override