LanguageCode varchar(10)
Language nvarchar(50)
LanguageCode参与了关系,因此我无法创建包含两列(LanguageCode和Language)的主键索引。
如果我在LanguageCode上放置一个主聚集键,当然我不能在该索引(覆盖索引)中包含Language。这意味着我必须为Language创建第二个索引,否则就会有重复值(还会强制进行表扫描以检索其值)。
此外,微软的文档(以及专家们)指出,表应该理想情况下具有聚集索引。
在这种情况下,非聚集覆盖索引(LanguageCode, Language)不仅可以确保Language是唯一的,而且可以避免表扫描。然而,没有"理想的"聚集索引。
这是那些没有聚集索引实际上是理想的情况之一吗?
根据反馈进行编辑:
我想运行的唯一查询是:
SELECT Language, LanguageCode FROM Languages where Language="EN"