我已经问过这个问题,但是系统已将其关闭。我有了代码,在其中添加了非常重要的部分之后,它在页面上,其中很多数据需要花费3-5分钟才能加载很长时间。这是一个演示,其中通过https://dbfiddle.uk/?rdbms=oracle_18&fiddle=892dcef2af2f606a7c31d15dfcba7314突出显示的部分可以正常工作。是否可以优化代码以使其不响应?我尝试了表索引,但没有用,我将非常感谢您的帮助。这部分代码的整个问题
AND rep.id not in ( select o.id
from IOT_STREAM_ANALYTICS_LOG_REPRESENTATION o,
IOT_STREAM_ANALYTICS_LOG_REPRESENTATION parent
where o.parent = parent.parent
and parent.key = 'reader'
and parent.VALUE_STRING != txn.reader_value_string)
该代码与以下事实相对应:当发生连接时,如果读者不适合我,则我不想加入该表。我希望我根本没有子查询,并且结果保留了)
在这种情况下,很难建议一些没有跟踪(最佳选择)或执行计划的东西。
我在这里看到的所有内容都可以将子查询重写如下
select id
from IOT_STREAM_ANALYTICS_LOG_REPRESENTATION o,
IOT_STREAM_ANALYTICS_LOG_REPRESENTATION parent
where o.parent = parent.parent
and parent.key = 'reader'
and VALUE_STRING != txn.reader_value_string;
但是我不确定这是否会导致使用同一列将表与其自身连接。也许您想将o.parent与u.id一起加入?
... where o.parent in
(select u.id /* <-- */ from ...
正如我所说,如果这样做没有帮助,请向我们提供查询计划或该查询的跟踪信息
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句