【求助】数据库SQL优化

changeking 2017-01-23 01:09:14
优化以下查询语句,并说出原理?
1. Select * from order where year(orderDate)<2008;
2. Select * from order where addtime/7<24;
3. Select * from order where title like “%good%”;
...全文
210 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
changeking 2017-01-26
  • 打赏
  • 举报
回复
谢谢各位,春节愉快!
IT_lau 2017-01-23
  • 打赏
  • 举报
回复
引用 1 楼 wmxcn2000 的回复:
1. Select * from order where year(orderDate)<2008; select * from order where orderDate <= date'2008-01-01' 原理:取消列上的计算 2. Select * from order where addtime/7<24; select * from order where addtime < 24 * 7; 原理:取消列上的计算 3. Select * from order where title like “%good%”; 无优化方案
物润声无 2017-01-23
  • 打赏
  • 举报
回复
第三个问题楼主可以试试上面提到的方案,并做一个比较分享下: 3、我记得like ‘good%’走索引,like '%good%' 不走索引 Select /*+parallel(tab n)*/ from tab; Select * from order where substr(title,good)>1
sxq129601 2017-01-23
  • 打赏
  • 举报
回复
1,2个见楼上的,不要在列上使用函数或计算,改成变量上操作 3是全表扫描没法优化,如果真的要快,可以加上并行处理 Select /*+parallel(tab n)*/ from tab; Select /*+parallel(order 4)*/ * from order where title like “%good%”; --4个并发,具体也要看服务器的CPU资源
sych888 2017-01-23
  • 打赏
  • 举报
回复
1#方法正解 第3个问题,看看能不能去掉左面的 % 或则考虑试一下正则表达式,看看效率如何
jdsnhan 2017-01-23
  • 打赏
  • 举报
回复
1、2原理相同,列上不要有操作,除非建立函数索引 3、我记得like ‘good%’走索引,like '%good%' 不走索引
卖水果的net 2017-01-23
  • 打赏
  • 举报
回复
引用 7 楼 hdg5211314 的回复:
第三个Select * from order where substr(title,good)>1 这样子是不是更快?
不等价,不能比较好坏。
卖水果的net 2017-01-23
  • 打赏
  • 举报
回复
1. Select * from order where year(orderDate)<2008;
select * from order where orderDate <= date'2008-01-01'
原理:取消列上的计算

2. Select * from order where addtime/7<24;
select * from order where addtime < 24 * 7;
原理:取消列上的计算

3. Select * from order where title like “%good%”;
无优化方案
hdg5211314 2017-01-23
  • 打赏
  • 举报
回复
引用 1 楼 wmxcn2000 的回复:
1. Select * from order where year(orderDate)<2008; select * from order where orderDate <= date'2008-01-01' 原理:取消列上的计算 2. Select * from order where addtime/7<24; select * from order where addtime < 24 * 7; 原理:取消列上的计算 3. Select * from order where title like “%good%”; 无优化方案
第三个Select * from order where substr(title,good)>1 这样子是不是更快?
changeking 2017-01-23
  • 打赏
  • 举报
回复
第三题应该也可以优化的啊,这是一道面试题哦

17,078

社区成员

发帖
与我相关
我的任务
社区描述
Oracle开发相关技术讨论
社区管理员
  • 开发
  • Lucifer三思而后行
  • 卖水果的net
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧