问题描述
环境: Exadata上的Oracle 12.1.0.2
我有一个包含30列的表,其中一个是CLOB,其中包含大约2600万行。
我有一个清除作业 (PL/SQL打包过程),它基于包含CLOB的驱动程序表中的id列表从九 (9) 个其他表中删除行。
我将id列表保存在全局临时表中,并使用该列表从其他表中删除关联行,这些表以正确的顺序完成以维护所有FK关系。
我今天正在运行一个测试,已经确定了大约98,000个要清除的id,但是我有大约500万个需要清除才能 “赶上”,然后我每天将有大约10,000个要清除的id。
其他9个表上的DELETE运行非常快。
带有CLOB列的表比其他表花费的时间长很多倍,例如几个小时而不是几分钟。
我猜想有一种更好,更有效的方法可以从包含CLOB的表中删除行,并重新获得已删除的CLOB使用的存储空间。
我目前仅发出 “从 中删除ID,其中ID在 (从
我有一个包含30列的表,其中一个是CLOB,其中包含大约2600万行。
我有一个清除作业 (PL/SQL打包过程),它基于包含CLOB的驱动程序表中的id列表从九 (9) 个其他表中删除行。
我将id列表保存在全局临时表中,并使用该列表从其他表中删除关联行,这些表以正确的顺序完成以维护所有FK关系。
我今天正在运行一个测试,已经确定了大约98,000个要清除的id,但是我有大约500万个需要清除才能 “赶上”,然后我每天将有大约10,000个要清除的id。
其他9个表上的DELETE运行非常快。
带有CLOB列的表比其他表花费的时间长很多倍,例如几个小时而不是几分钟。
我猜想有一种更好,更有效的方法可以从包含CLOB的表中删除行,并重新获得已删除的CLOB使用的存储空间。
我目前仅发出 “从




