我继承了一个数据库,其中没有在表上定义主键。也没有为表分配聚簇索引。
如果我执行一个 alter table 来分配一个主键,这会导致 SQL Server 也创建一个聚集索引吗?如果是这样,我是否应该期望由于数据在硬盘上重新定位的 IO 而导致数据库运行缓慢?
我继承了一个数据库,其中没有在表上定义主键。也没有为表分配聚簇索引。
如果我执行一个 alter table 来分配一个主键,这会导致 SQL Server 也创建一个聚集索引吗?如果是这样,我是否应该期望由于数据在硬盘上重新定位的 IO 而导致数据库运行缓慢?
是的,SQL Server 会默认创建集群主键,但您不必接受默认值。
是的,你会在这里看到一些 I/O 活动,所以如果它是一个繁忙的系统,最好把它留到安静的时间或维护期间。