起步软件技术论坛-X3

 找回密码
 立即注册
搜索
查看: 176|回复: 2

【结】SQL语句优化[请求]

[复制链接]
发表于 2008-2-25 17:20:55 | 显示全部楼层 |阅读模式
我写了一条SQL查询语句,如下:
select A.* from t8030_plant_real_data A ,(select plant,link_unit from t8042_lable_plant where lower(LABLE) = 'lb_pjz' )  B
         where A.plant=B.plant and A.LINK_UNIT=B.LINK_UNIT
           and A.M_TYPE= 'plant'
           and TO_CHAR(A.M_TIME ,'YYYY-MM-DD') = '2007-01-01'

数据量比较大,最后一句时间条件非常耗时间,要执行25秒左右。
如果不要这句只需110毫秒左右,但是又不能不要。请问有什么办法可以优化一下呢?谢谢!
回复

使用道具 举报

发表于 2008-2-25 18:14:02 | 显示全部楼层
试一下先过滤再关联查询。
另外可以添加索引看看效果
回复 支持 反对

使用道具 举报

 楼主| 发表于 2008-2-26 09:57:23 | 显示全部楼层
即使先过滤再关联查询也很慢,主要就是时间过滤这句非常耗时间,因为用到了字符串转换TO_CHAR。我想了个办法,不用字符串转换,用>=和<=来限定时间范围即可。一千二百万条数据过滤到144条只需要1秒。
回复 支持 反对

使用道具 举报

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

本版积分规则

小黑屋|手机版|Justep Inc.

GMT+8, 2025-7-7 07:24 , Processed in 0.036620 second(s), 15 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

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