度量快速开发平台-业界最好的全功能软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 部件 流程 SQL
查看: 1271|回复: 19

[分享] oracle in 查询速度优化

  [复制链接]

66

主题

684

帖子

1810

积分

作者

Rank: 7Rank: 7Rank: 7

积分
1810
发表于 2016-11-18 20:56:08 | 显示全部楼层 |阅读模式
在网上查了好多资料,都是说用什么exists,或者位图什么的。不过这些方法都是多少年以前的了,现在oracle10G以上的人家自己就已经优化了,所以用in 和 exists 是一样的效果。不过经过我的努力,这个"in"在某种情况下还是可以优化的,如下图是我用in查询的一个语句,执行结果让人忧伤啊,下面的三个表的数据分别是:800,700,1000,结果执行时间超过了1分钟:

折磨了我一天,终于想到了一个方法,就是用LIKE,之前网上也有资料说用LIKE,不过他就论坛恢复中写了一个单词LIKE,好家伙,一般人难以理解啊,下面我就把代码贴出来,仔细看是谁like谁哦:

好家伙,一下变6秒,妙哉妙哉。
在解释一下,就是用wm_concat()把in的类容转换为都好分隔的字符串,然后在那这个字符串去like。这个原理还没深入研究,不过事实是效率提高了,而且数据准确。


回复

使用道具 举报

197

主题

1307

帖子

3514

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3514
发表于 2016-11-18 21:04:45 | 显示全部楼层
尽量别用IN。特别是in 里面数据多的。别用。in里面只有几个少数的时候还行。
回复 支持 反对

使用道具 举报

197

主题

1307

帖子

3514

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
3514
发表于 2016-11-18 21:05:40 | 显示全部楼层
一定要慎重使用。否则数据多了,慢得要命。
回复 支持 反对

使用道具 举报

66

主题

684

帖子

1810

积分

作者

Rank: 7Rank: 7Rank: 7

积分
1810
 楼主| 发表于 2016-11-18 21:21:24 | 显示全部楼层
沙发居然被强了
回复 支持 反对

使用道具 举报

66

主题

684

帖子

1810

积分

作者

Rank: 7Rank: 7Rank: 7

积分
1810
 楼主| 发表于 2016-11-18 21:22:13 | 显示全部楼层
你的动作好快
回复 支持 反对

使用道具 举报

78

主题

634

帖子

1596

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1596
发表于 2016-11-18 21:40:32 | 显示全部楼层
支持原创的优化经验分享。。。
回复 支持 反对

使用道具 举报

78

主题

634

帖子

1596

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
1596
发表于 2016-11-18 21:41:55 | 显示全部楼层
like语句反写,效果很好。
都来围观学习。
回复 支持 反对

使用道具 举报

348

主题

3590

帖子

8725

积分

论坛元老

Rank: 8Rank: 8

积分
8725
发表于 2016-11-18 21:46:20 | 显示全部楼层
上楼如此之快,lz威武
若現在就覺得失望無力,未來那麽遠妳該怎麽扛...
————————————————————————致自己
回复 支持 反对

使用道具 举报

328

主题

3738

帖子

8565

积分

作者

Rank: 7Rank: 7Rank: 7

积分
8565
QQ
发表于 2016-11-18 22:01:02 | 显示全部楼层
不错不错,生动,案例好!
回复 支持 反对

使用道具 举报

348

主题

3590

帖子

8725

积分

论坛元老

Rank: 8Rank: 8

积分
8725
发表于 2016-11-19 17:54:37 | 显示全部楼层
我手贱啊,又进来了,是不是因为写的太美了

点评

你搞笑么!  详情 回复 发表于 2017-4-29 14:38
若現在就覺得失望無力,未來那麽遠妳該怎麽扛...
————————————————————————致自己
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|重庆度量科技  本站关键词:快速开发平台

GMT+8, 2018-5-23 15:36 , Processed in 0.392058 second(s), 34 queries .

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

快速回复 返回顶部 返回列表