2

我为级联删除设置了外键,运行删除命令大约需要 30 分钟。这是我要删除的行数的简化视图:

DELETE from Directories WHERE Type = 1

结构:

Directory表:(从WHERE子句返回 1.2K 行)

+---+File带有DirectoryID外键的表(50K 行)

+-------------+Tag带有FileID外键的表(28K 行)

这需要 28 分钟才能运行。

我应该避免使用多层级联删除,还是可以做一些简单的事情来提高性能?如果没有外键,我可以在不到一秒的时间内删除 50K+ 行。

我是 SQL 和 SQL Server Compact Edition 3.5 的新手。所有主键都被索引。我在没有帮助的外键上添加了索引。任何帮助,将不胜感激。

4

1 回答 1

1

根据这个讨论,如果您的外键上有复合索引,您可能希望考虑使用仅包含外键字段的简单索引。

于 2012-11-12T00:10:25.977 回答