Cla*_*ude 6 sql-server sql-server-2008
我已将表上的主键定义为nonclustered.对于由其显式创建的非聚集索引,create nonclustered index可以包含其他(非索引)列.隐式创建的主键非聚集索引也可以相同吗?
nonclustered
create nonclustered index
Ric*_*iwi 13
为INCLUDE列的语法仅适用于创建非聚集索引,特别是
INCLUDE(column [,... n])指定要添加到非聚簇索引的叶级别的非键列.非聚集索引可以是唯一的也可以是非唯一的.
它是否不适用于ADD CONSTRAINT,因此您不能包含具有主键的任何列,即使它是非群集的.
PRIMARY KEY可用作记录的UNIQUE标识符,并且是可用于REFERENTIAL约束的候选键.但是,出于性能原因,如果在另一列上有一个集群键,并且没有其他候选键可以作为PK进行升级,则可以始终在主键列和INCLUDE其他列上创建其他非聚集索引.进入指数.
Dan*_*man 6
尽管无法使用主键或唯一约束指定包含的列,但一种解决方法是使用相同的键和包含的列的唯一非聚集索引。这不仅提供与主键约束相同的唯一性保证,外键也可以引用唯一约束/索引键,提供与引用的主键相同的引用完整性。
此方法的优点是针对特殊用例的性能,例如当最佳聚集索引选择不是主键并且包含的列对于性能而言是理想的时。
缺点是只能指定带有主键约束的声明式级联 DRI,而且不直观。
归档时间:
13 年,1 月 前
查看次数:
10548 次
最近记录: