Adr*_*rie 14 sql-server-2008 sql-server
-- Add page level compression
alter table dbo.TableName
rebuild with (data_compression = page)
;
go
-- Add primary key
alter table dbo.TableName
add constraint PK_TableName
primary key clustered (<Columns>)
;
go
-- Add NC_IXs here
...
...
Run Code Online (Sandbox Code Playgroud)
我看过here(PK创建文档)和here(ALTER TABLE文档),但看不到任何关于是否有任何索引继承表压缩设置的明确信息。 这个特定问题的答案是“不,压缩不是继承的”,在 dba.stackexchange 上找到
Ken*_*her 12
聚集索引实际上就是表。假设您的主键是集群的,那么我将创建一个具有页面级压缩的集群主键,而不是尝试分两步完成。
-- Add primary key
ALTER TABLE dbo.TableName
ADD CONSTRAINT PK_TableName
PRIMARY KEY CLUSTERED (<Columns>)
WITH (DATA_COMPRESSION = PAGE)
;
Run Code Online (Sandbox Code Playgroud)
我还会将大约 100k 行复制到临时(临时物理而非 #temporary)表并运行一些测试。尝试先运行压缩,先运行集群键,然后尝试将它们作为一个步骤进行。看看什么跑得最快。我想这将是个人的一步:)。