优化对许多外键引用的表的删除

时间:2010-02-22 08:55:50

标签: sql-server sql-server-2005 foreign-keys

我有一个表Document,它通过外键被大量其他表引用。我正在尝试删除文档记录,并根据我的执行计划,SQL Server正在对每个引用表执行聚簇索引扫描。这非常痛苦。

我以为让FK自动在FK字段上做了一个索引?还是我错了?我是否真的必须绕过我的数据库,在每个FK字段上放置一个显式索引?

2 个答案:

答案 0 :(得分:4)

不,SQL Server在创建外键时不会自动创建索引。您必须自己创建索引。

相关文章:Does a foreign key automatically create an index?

答案 1 :(得分:1)

名称“外键”有点误导,因为它通常与“主键”相关联,后者会自动编入索引。因此,人们可能会认为外键也被编入索引。

交易是这里的“关键”是指约束。因此,添加外键实际上会添加一个约束。索引是完全不同的交易。