0

从表中按其 PrimaryKey 删除一行时,我得到大约 44472 次逻辑读取。现在该表有 5-6 个子表,它们将它们的 ForeignKeys 链接到我要从中删除的表的 PK。

我不确定如何提高删除的性能。

有什么建议么 ?

编辑: 我为删除添加了查询计划

http://img384.imageshack.us/img384/6255/deleteexecutionplan.png

编辑: 我找到了一个解决方案(不确定它是否是理想的解决方案) - 它在下面的响应中。

4

3 回答 3

0

这个答案解决了问题,现在像魅力一样删除工作。我不确定是否有任何我应该注意的缺点。

于 2009-10-16T07:24:13.187 回答
0

查看单行删除的查询计划。

我想您会发现正在对一个或多个“子”表进行表扫描。如果是这样,请考虑在该子表中的 ForeignKey 上放置一个索引。

(否则请将查询计划添加到您的问题中)

于 2009-10-15T08:53:19.983 回答
0

你有FK限制吗?

我能想到的选项是

  • 向子表中的 FK 列添加索引。
  • 删除约束(这可能会产生孤立的行)。
  • 尝试减少子表的数量。
于 2009-10-15T08:56:08.067 回答