我是否需要在 SQL Server 2008 中为不同表中的 FK 到 PK 的列建立索引?

我是否需要在 SQL Server 2008 中为不同表中的 FK 到 PK 的列建立索引?

我有一张查询量相当大的表。我要连接的列是另一张表中主键的 FK。此列似乎通过表扫描占用了查询时间,这使我相信 SQL Server 将无法使用远程表上的索引,并且需要在我的源表上建立自己的索引。

我非常确定我是对的,但如果有 SQL Server 2008 天才可以参与其中,那就太好了。

答案1

需要索引外键列?不,绝对不行。

应该您是否索引了外键列?几乎可以肯定。正如您所发现的,外键列经常用于 SELECT 和 JOIN,除非索引,否则它们确实会降低您的性能。

答案2

你绝对应该将你的外键列编入索引!有些人认为这应该是自动完成由 SQL Server 提供。

相关内容