请选择 进入手机版 | 继续访问电脑版
 找回密码
 立即注册

QQ登录

只需要一步,快速开始

搜索
开启左侧

oracle中SQL常见的优化的方法

傅先生_4206 2019-11-6 15:18:06 来自手机 显示全部楼层 阅读模式

马上注册,分享更多源码,享用更多功能,让你轻松玩转云大陆。

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
我们使用oracle数据库开发的过程当中,我们会发现注重sql优化的人,同样一个系统,性能快了很多。下面详情一些常用的sql优化机巧和注重点。
1、表尽量使用别名,字段尽量使用别名.字段名,这样子,可以减少oracle数据库解析字段名。而且把不需要的字段名剔除掉,只保留有用的字段名,不要一直使用 select *。
2、关联查询时,选择好主表。oracle解析器对from 后面的表的解析是从右到左的,所以把数据量较小的表作为主表,然后和其他表进行关联,假如存在三个以下表,把同时交叉关联的表作为主表,提高查询效率。
3、where 条件后面的的条件解析是从下向上,从后先前解析执行的,所以可以把过滤数据量较多的条件放在最后面。
4、多利用表中数据行的rowid,rowid代表着表中数据存在的物理地址。例如删除重复记录的时候,可以根据rowid进行删除。
5、减少对表的查询,特别在子查询中,能尽量少重复访问表,就减少。
6、避免使用耗资源的操作,如distinct、Union、minus等这种需要全表查询的操作。
7、优化分组group by ,对group by字段要进行添加锁引,假如分组当中含有查询条件,要改写为where条件进行过滤后,再进行分组,而不是直接进行 having 条件。
8、用EXISTS替代IN、用NOT EXISTS替代 NOT IN,由于 not in是低效的,它必须对该字段的全部数据进行排序。
9、要合理利用索引字段提高查询效率。特别是常用的关联字段可以增加索引,主键、或某些唯一字段。
10、利用>=替代>,由于>=可以直接定位到=的位置,而大于必须先定位位置,然后再查询下一个数据。耗时不一样。
11、最后一个一定要学会查看执行计划,查看相关查询条件能否进入索引,找出问题所在,定位问题。
欢迎大家讨论补充
152005x3bd0bui1oln15fb.jpg
回复

使用道具 举报

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

广告招商