首页 新闻 会员 周边

要哭了!帮忙看看这条hql怎么优化一下吧。。。。在线等。

1
悬赏园豆:100 [待解决问题]

from TQiYeJBXX t where 1=1
    and (select f1.pingJiFH  from  TPingJiFHWH f1  where f1.bianHao=(select t1.zhuTiJBBH from TPingJiJG t1 where t1.xiangMuJBXX.shouPingZT.bianHao=t.bianHao   and t1.pingShenRQ=(select max(tt1.pingShenRQ) from TPingJiJG tt1 where tt1.xiangMuJBXX.shouPingZT.bianHao=t.bianHao and tt1.pingShenRQ>=? and tt1.pingShenRQ<=? and charindex(',',tt1.zhuTiJBBH)<1)))
     <> 
 (select f2.pingJiFH from  TPingJiFHWH f2 where f2.bianHao=(select t2.zhuTiJBBH from TPingJiJG t2 where t2.xiangMuJBXX.shouPingZT.bianHao=t.bianHao
      and t2.pingShenRQ=(select max(tt2.pingShenRQ) from TPingJiJG tt2 where tt2.xiangMuJBXX.shouPingZT.bianHao=t.bianHao and tt2.pingShenRQ>=? and tt2.pingShenRQ<=? and charindex(',',tt2.zhuTiJBBH)<1)))

这条语句的主要作用是查出今年和去年pingJiFH发生变化的记录(当然还有其他的一些条件)。关联比较复杂。

 

 

我都想哭了,查询起来要几分钟时间。这两天一直在尝试做优化。可怎么改都不是很恰当。大家帮我想点办法好吗???

问题补充:

这上面排版实在不好排,各位大牛将就看一下吧。如果实在看着费劲,请留下邮箱。我把版式排一下发给你。

 

我觉得就是里面嵌套的子查询太多了导致性能低下。各位大牛帮我看看怎么转换成高效率的语句啊

winhex的主页 winhex | 初学一级 | 园豆:6
提问于:2013-10-09 15:53
< >
分享
所有回答(6)
0

索引都建好了么?

+小马哥++ | 园豆:906 (小虾三级) | 2013-10-09 16:44

主要是查询语句的自查询太多了。看能不能帮我转换成别的?

支持(0) 反对(0) winhex | 园豆:6 (初学一级) | 2013-10-09 17:06
0

建个视图试试吧,牺牲一下数据库性能,提高网站访问速度

walleyekneel | 园豆:306 (菜鸟二级) | 2013-10-09 16:48

主要是查询语句的自查询太多了。看能不能帮我转换成别的?

支持(0) 反对(0) winhex | 园豆:6 (初学一级) | 2013-10-09 17:06

@winhex: 额,没用过视图,就是将查询结果丢进去视图,会快点很多,或者你分析一下那条语句耗时最长

支持(0) 反对(0) walleyekneel | 园豆:306 (菜鸟二级) | 2013-10-09 17:09

@walleyekneel: 真心没用过视图,其实我就是想让您帮我看看能不能减少一两个嵌套子查询。用表连接之类的来代替。

支持(0) 反对(0) winhex | 园豆:6 (初学一级) | 2013-10-09 17:11

@winhex: 分析一下那条语句耗时最长,逐步优化。程序员真的不应该钻牛角尖,解决方法有很多种。。。不该死在一个方法不放弃

支持(0) 反对(0) walleyekneel | 园豆:306 (菜鸟二级) | 2013-10-09 21:53
1

看看生成的sql?

写一个存储过程?

看看你自己的查询逻辑

迅捷网络[来送福利] | 园豆:576 (小虾三级) | 2013-10-09 17:45
0

把最里面的那个MAX查询出来的数据用表变量存储起来,这样会大大减少执行计划的复杂度

http://www.cnblogs.com/happysmile/archive/2013/05/28/3104195.html

happydaily | 园豆:301 (菜鸟二级) | 2013-10-09 18:06
0

看看这些sql语句逻辑,能不能分成几条sql语句写。

一线码农 | 园豆:213 (菜鸟二级) | 2013-10-10 16:41
0

存储过程,会不会快点

tanyan | 园豆:204 (菜鸟二级) | 2013-10-11 13:29
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册