让我们考虑以下场景:我有一个带有“详细信息”表的“主表”。详细信息表只有一个指向主键的外键(不是主键)。这是我映射一个简单包时NHibernate为我生成的模式。我的问题是,详细信息表上的FK本身是否足以在没有完全扫描的情况下进行查询?在其他世界中,是否在详细信息表中定义了FK,是否会改变性能?我想是的,但我不知道我是对的,或者在哪里找到解释它的来源。
答案 0 :(得分:1)
在这两种情况下(FK或无FK),您必须在详细信息表中的FK字段上创建索引以防止表扫描。在sql server中,创建FK约束时,不会自动创建索引。
请参阅MSDN,“索引FOREIGN KEY约束”。