sql优化的进入的误区
来源:互联网 发布:mysql修改表名 编辑:程序博客网 时间:2024/04/27 20:30
如题,近期做新作一个项目,有个CR是让对sql语句进行优化,提高运行效率。
具体的sql这里就不写了,因为不是本文要写的重点。这里用select * from dual来代替《这里认为是sql1》。
本以为是对这个sql进行优化就可以了,但是经过了两天修改,一无所获。
后来无奈只能请教同事,才发现问题并不在此。
因为在这句sql执行过后,下面的代码间接的使用了sql1执行的结果集。
并且对这个结果集合中的某些字段重新查询:
例如下面的sql就对结果集合中的InvoiceType这个字段进行判断,并使用了这个findSysParaName()方法(这个方法里面是一个sql查询《这里可以认为是sql2》)得到结果,并重新写入到第一条sql的结果集合中。
tmp[1]= !StringUtils.isEmpty(obj.getInvoiceType()) ? obj.getInvoiceType()+" "+findNameFacadeImpl.findSysParaName("VD", "INVOICE_TYPE", obj.getInvoiceType()) : "";
所以执行过程中下面的sql就会执行多次,从而影响了效率:解决办法就是将下面的sql2加入到上面的 sql1《我这里使用左链接》中.从而使得程序只执行sql1一次,提高了效率。
举个例子:
<sql1>
select name from people;
<sql2>
select age from employee where name=name <sql1的结果>
那么我们将两个sql结合在一起:
select name ,age from people left join employee on employee .name=people.name <sql1的结果>
最终程序完成优化。
就将这么多吧,其实就是一开始进入了一个sql优化所带来的一个误区。这里就总结出一个经验教训,以后如果出现很多自己没有把握解决的问题,尽早的请教同事或者他人,从而不至于在误区里面徘徊不前。
- sql优化的进入的误区
- 优化中最容易进入的5个误区
- 初学WCF进入的误区
- SQL优化-索引 (二)结合实际,谈索引使用的误区
- Sql Server查询性能优化之走出索引的误区
- Sql Server查询性能优化之走出索引的误区
- Sql Server查询性能优化之走出索引的误区
- 工薪族进入其它象限的四个误区
- 搜索引擎优化的几个误区
- SQL遇见的一个误区
- sql左连接的误区
- 网页优化的基本原理与误区
- 走出企业网站优化的误区
- SEO优化的几点误区
- [转]网站优化与SEO的误区
- SEO优化常见的几个误区
- 系统性能优化的常见八大误区
- 系统性能优化的常见八大误区
- C# 界面加载慢问题
- B. Prime Matrix
- Java协变返回类型
- RTX集群服务器安装使用
- Altium Designer入门使用1——基本使用
- sql优化的进入的误区
- 用ms chart 进行绘制图表(包含比较多的应用)
- 拥有百万年薪的秘密武器:15种能力你具备几种?
- windows调试技术(一)
- Java中抽象类和接口的区别(来源二,原始来源不明确)
- paip.InternetExplorer.Application打开非IE的解决方法
- To do
- Openstack scheduler
- Openstack 中的zone ,aggregates和host及其应用