0

背景:表有大约 200m 行 55GB。

我需要对一个重复的表进行行复制,但具有 BIGINT 标识,当然,在从原始表生成脚本以 CREATE 时,它会保留所有内容,包括表名、PK 的 INT 值和 PRIMARY关键约束 - 所有这些都需要更改。

我的问题是,如果我更改 PRIMARY KEY CONSTRAINT 名称,并且不改回来,它会搞砸吗?存储过程或直接命令是否可以直接调用此约束,作为索引或其他东西?如果以后需要重命名,那是一个瞬时过程还是一个长的一个这么大的表?

我认为其他索引并不重要,因为我应该在重新创建新索引之前将它们放在原始表上,对吗?

还有一个问题:在这种大小的桌子上 - 和一个高容量系统,考虑到性能,我是否应该重新考虑更改以下任何值?:

WITH (
    PAD_INDEX  = OFF, 
    STATISTICS_NORECOMPUTE  = OFF,
    IGNORE_DUP_KEY = OFF, 
    ALLOW_ROW_LOCKS  = ON, 
    ALLOW_PAGE_LOCKS  = ON, 
    FILLFACTOR = 95
) ON [PRIMARY]
4

1 回答 1

4

索引名称通常不会在编程 API 中直接引用。没有“从索引中选择”或“插入索引”语法,所有内容都引用表对象。尽管索引名称被暴露在少数地方,例如table hints

但是您可能有了解物理布局(即索引和约束名称)的管理/维护脚本/作业。

于 2012-12-06T13:42:20.820 回答