我们有一个带有几个不同表的Oracle 11g数据库。其中一个表包含大约120,000条记录,每条记录都有一个BLOB字段。 BLOB中的数据大小从2-3KB到几MB不等。问题是,当我们想要从该表中删除记录时,需要很长时间 - 有时超过一分钟才能删除一条记录(使用SQL开发人员或使用DBMS作业)。删除其他表的记录没有问题。出于测试目的,我们将要删除的一条记录的BLOB字段设置为EMPTY_BLOB(),但再次删除此记录需要很长时间。
对于包含BLOB的记录,此行为是否正常?有没有办法调整删除这些记录,以便可以更快地删除它们?
答案 0 :(得分:1)
感谢提示,特别是与索引相关的提示。问题源于外键缺少索引。实际上,我们在没有编入索引的外键中有一个“ON DELETE SET NULL”语句。当我们索引外键时,删除变得非常快。