Sql-Server

是否將主鍵添加為聚集索引?

  • December 30, 2015

我繼承了一個沒有在表上定義主鍵的數據庫。也沒有為表分配聚集索引。

如果我執行更改表來分配主鍵,這是否會導致 SQL Server 也創建聚集索引?如果是這樣,我是否應該期望由於重新定位在硬碟上的數據的 IO 而導致數據庫執行緩慢?

是的,SQL Server 預設將主鍵創建為集群,但您不必接受預設值。

ALTER TABLE dbo.foo 
 ADD CONSTRAINT pk PRIMARY KEY (bar); -- clustered

ALTER TABLE dbo.foo 
 ADD CONSTRAINT pk PRIMARY KEY CLUSTERED (bar); -- clustered

ALTER TABLE dbo.foo 
 ADD CONSTRAINT pk PRIMARY KEY NONCLUSTERED (bar); -- non-clustered

是的,你會在這裡看到一些 I/O 活動,所以如果它是一個繁忙的系統,最好將其保存到安靜的時間或維護期間。

引用自:https://dba.stackexchange.com/questions/35907