您好,我是小DAI,专注于数据库管理员相关的技术问答,请问有什么可以帮您?

sp_placeobject

语法


sp_placeobject <segname>, <objname>[, <partitionname>]

参数

<segname>

是将表或索引放置到的段的名称。

<objname>

是表或索引的名称,其后续的空间分配将在段 <segname> 上进行。请以“<tablename>.<indexname>”形式指定索引名称

<partitionname>

(可选)是分区的名称,可用于设置特定分区的段。

示例

示例 1

指定表 authors 的所有后续空间分配在名为“segment3”的段上进行:


sp_placeobject segment3, authors

示例 2

指定 employee 表的 employee_nc 索引的所有后续空间分配在名为 indexes 的段上进行:


sp_placeobject indexes, 'employee.employee_nc'

示例 3

指定 my_tab 表段的名为 my_seg2 的所有后续空间分配在分区 part1 上进行:


sp_placeobject my_seg2, my_tab, part1

用法

使用 sp_placeobject 时,还存在一些其它注意事项:

  • 如果没有为新分区指定任何段,则使用此过程不会影响现有表或索引数据的位置,也不会影响以后要添加的现有分区或新分区的位置。更改表或索引所使用的段可以将数据分布在多个段上。

  • 如果您将 sp_placeobject 用于聚簇索引,则该表将与索引一起移动。

  • 您可以在用 create table 或 create index 创建表或索引时指定段。也可以将分区级别的一个段指定为分区定义的一部分。没有段规范的分区将使用在表/索引级别指定的段。如果没有为表/索引级别指定任何段,数据将进入缺省段。

  • 在 sp_placeobject 跨多个磁盘片段拆分一个表或索引,诊断命令 dbcc 将显示在执行 sp_placeobject 前已用于存储的片段上驻留的数据的有关信息。忽略这些消息。