0

我们有一个包含几个不同表的 Oracle 11g 数据库。其中一张表包含大约 120,000 条记录,每条记录都有一个 BLOB 字段。BLOB 中的数据大小从 2-3KB 到几 MB 不等。问题是,当我们想从该表中删除一条记录时,需要很长时间——有时只删除一条记录需要一分钟以上(使用 SQL 开发人员或使用 DBMS 作业)。我们删除其他表的记录没有问题。出于测试目的,我们将要删除的一条记录的 BLOB 字段设置为 EMPTY_BLOB(),但再次删除该记录需要很长时间。

对于包含 BLOB 的记录,这种行为是否正常?有没有办法调整删除这些记录,以便可以更快地删除它们?

4

1 回答 1

1

感谢您的提示,特别是与索引相关的提示。问题源于缺乏外键索引。实际上,我们在没有索引的外键中有一个“ON DELETE SET NULL”语句。当我们索引外键时,删除变得非常快。

于 2013-10-31T21:10:10.117 回答