sql - 自联接 SQL 执行时间过长
问题描述
下面的 SQL 花费了太多时间来执行。不知道哪里做错了,但可以得到正确的结果。我可以进一步简化这个 sql。这是 oracle db,jmc_job_step 表包含大量记录。
select *
from
jmc_job_run_id jobrunid0_
inner join
jmc_job_step jobsteps1_
on jobrunid0_.id=jobsteps1_.job_run_id
where
(
jobsteps1_.creation_date in (
select
min(jobstep2_.creation_date)
from
jmc_job_step jobstep2_
where
jobrunid0_.id=jobstep2_.job_run_id
group by
jobstep2_.job_run_id ,
jobstep2_.job_step_no
)
)
or jobsteps1_.job_step_progress_value in (
select
max(jobstep3_.job_step_progress_value)
from
jmc_job_step jobstep3_
where
jobrunid0_.id=jobstep3_.job_run_id
group by
jobstep3_.job_run_id ,
jobstep3_.job_step_no
)
)
order by
jobrunid0_.job_start_time desc
解决方案
这是没用的;它说“我不在乎那些列包含什么”,但是 - 然而 - 你让数据库引擎检查这些值。
(
upper(jobrunid0_.tenant_id) like '%'|| null
)
and (
upper(jobrunid0_.job_run_id) like '%'||null||'%'
)
推荐阅读
- html - Angular - 当另一个类被 JS 激活时激活一个类
- reactjs - why two border showing on hover of input field?
- powershell - 结合 PowerShell 脚本列出 MailboxName、PrimarySMTPAddress、Who Got Access、AccessPermissions 和 SizeInMB
- database - 在 mongodb 中插入字段的任何解决方法都以 $ 符号开头
- javascript - 没有点击事件的循环中的Javascript函数
- java - 如何更改 javafx 图表的轴颜色?
- linux - Systemd 在启动时延迟日历事件的启动时间或等待其他服务
- c# - button_onclick() 在 .aspx 页面本身中生成
- html - 如何阻止对 API 生成的 URL 的抓取和索引?
- c# - 如何在外键列上更新和插入值?