对超长sql优化体会
来源:互联网 发布:阿里巴巴淘宝商城衣服 编辑:程序博客网 时间:2024/04/28 11:05
可能对于大多数人对于超长的sql优化,可能看sql去理解逻辑都要花很长时间,尤其在帮别人优化的过程中,在不理解业务的情况下更是无从下手,其实对于超长sql的优化,其实并没有想象中的那么难,对于那些超长sql,我们只需要明白,其中有特殊的操作,比如在sql中有没有视图,有没有子查询,有没有标量查询,这些都是一些要考虑的问题,这只是观察,并不需要我们去理解真正sql想表达的含义。当我们看完sql以后,接下来是去分析执行计划,通过我们观察的sql我们,可以想象到在执行计划中,如果有视图在执行计划中会发生什么,如果有只查询在执行计划中回发生什么,这些都是要能够想象到的。然后再根据返回的行数来确认,嵌套循环是否能用,考虑到这这么多因素以后,我认为优化长sql就不会那么难了。
今天跟大家分享一个超长sql,但是具体内容我本能贴出来,我只能贴部分执行计划。sql的大概是两个表做hash,即id=2 和id=10 做关联。id=10为一个视图
从执行计划可以看出,所以的时间都是花在id=10的视图中,而且id=1的视图最终返回一行结果,这个明显的可以让他走嵌套循环嘛,其实可以走嵌套循环为什么oracle没有选择走呢,按常规来说oracle在于视图做关联的时候默认会把谓词推入的,但是在这里没有。这里可能有两个原因一个id=10视图的原因,一个是谓词推入的开关关掉了。在查看设置以后是开关关掉了,开启开关了20s就把这个sql给跑完了。所以sql也就有话了。
0 0
- 对超长sql优化体会
- sql查询优化之个人体会
- 对SQL的优化
- 对其SQL进行优化
- 对编程的体会
- 对软件工程的体会
- 结对编程体会
- 对现代优化算法学习的一点体会(我的第一篇博客)
- 对着色器代码与纹理图优化的一些体会
- sql 语句中对like 的优化
- 对已知sql的优化方法
- 探寻BTree 索引对sql 优化影响
- SQL超长8000问题的处理方法
- EntityFramework Any 生成的sql语句超长。
- oracle sql 超长报ORA-01460错误
- 几点SQL体会
- SQL解析及体会
- 安装SQL sever体会
- 阅读JVM高级特性与最佳实践-1
- WLAN 常用网址收藏
- Jboss6 远程调用ejb问题
- Github开源Android组件资源整理(二)ActionBar和Menu
- VMware12.0 设定虚拟机时间
- 对超长sql优化体会
- 线程的生命周期
- http://www.tup.tsinghua.edu.cn/booksCenter/book_05837401.html#
- 项目管理之事成人爽
- 设置商品价格,类型
- VC获取屏幕分辨率及大小相关
- Github开源Android组件资源整理(三) ViewPager 、Gallery、GridView
- Android studio创建项目
- RecyclerView GridLayoutManager 设置分割线 万能分割