Oracle 对级联删除的解释是错误的

Fra*_*fka 3 performance oracle delete oracle-11g-r2 explain

我在 Oracle 11 中的删除非常慢。这些表由外键链接,每个外键约束都设置了删除级联。

如果我在这样的语句上点击解释按钮,DELETE FROM TOP_LEVEL_TABLE WHERE SOMETHING = 'whatever'它只会显示我的TOP_LEVEL_TABLE参与,即使涉及 30 个其他表。

我怎样才能得到更真实的结果?

a_h*_*ame 5

我不认为这是可能的。

如果我没记错的话,优化器甚至不知道(或至少不会尝试知道)该语句也会“触及”其他表。

它没有明确记录,但手册中的以下引用仅讨论了 SQL 语句中“引用”的表(重点是我的):

行源树是执行计划的核心。它显示以下信息:
   -语句引用的表的排序 -语句
   中提到的每个表的访问方法
......

我认为重要的部分是:“语句引用的表”。没有提到“依赖”表。

编辑
如果您需要提取该信息,您可能必须跟踪您的会话并查看 TKPROF 输出。