当前位置: 代码迷 >> Oracle开发 >> oracle一个性能优化的sql.该怎么处理
  详细解决方案

oracle一个性能优化的sql.该怎么处理

热度:88   发布时间:2016-04-24 07:59:49.0
oracle一个性能优化的sql...
有一个sql语句想优化下,看过很多文章说不用in,可是不知道该如何修改:
  select work.Id from table01 as work where (work.Id = 01 
  or work.workId in (select p.workId from table02 as p
  where p.PId=01)) and work.isDel<>1 and work.workDate between ? and ?
  order by work.workDate,work.beginTime;
我创建了一个索引 字段是 workDate。其他的方式该怎么搞?能不能用视图,怎么用啊?....

------解决方案--------------------
SQL code
(work.Id = 01 or work.workId in (select p.workId from table02 as pwhere p.PId=01))
------解决方案--------------------
select work.Id,work.workDate,work.beginTime
 from table01 as work 
where work.Id = 01 
and work.isDel<>1 
and work.workDate between ? and ?
union all
select work.Id,work.workDate,work.beginTime
 from table01 as work,table02 as p 
where p.PId=01 and work.workId = p.workId
and work.isDel<>1 and work.workDate between ? and ?
order by workDate,beginTime;
  相关解决方案