索引的名称是否重要,即它们是否在表中更改了?

时间:2012-12-06 13:19:00

标签: sql-server database-design

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

我需要对一个重复的表进行行复制,但是使用BIGINT标识,当然从原始表生成脚本到CREATE时,它会保留一切相同的内容,包括表名,PK的INT值,和主要约束 - 所有这些都需要改变。

我的问题是,如果我更改了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]

1 个答案:

答案 0 :(得分:4)

索引名称通常不会在编程API中直接引用。没有“从索引中选择”也没有“插入索引”语法,所有内容都引用了表对象。虽然索引名称是公开的,但在很少的地方,例如table hints

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