如何优化SQL语句,提高查询速度 急!!
时间:2011-12-22
来源:互联网
ALTER PROCEDURE [dbo].[GetLEDShowData]
as
select rank () over (order by testtime desc) xh,Stationinfo.StationName,Report.Dpress,ZDayDunShuiHaoDian.Consumption1,History.* from History left join Stationinfo on History.StationName=Stationinfo.Agreement left join Report on Report.StationName=History.StationName
left join ZDayDunShuiHaoDian on ZDayDunShuiHaoDian.StationName=History.StationName
where History.ID in(select max(ID) from History group by StationName) and Report.ID in(select max(ID) FROM Report group by StationName) and ZDayDunShuiHaoDian.ID in(select max(ID) from ZDayDunShuiHaoDian group by StationName)
order by Testtime desc
这是我写的SQL存储过程,在SQL 2005中运行好几分钟才能查出数据来。如果要是在C#中调用那就更慢了。如果更改才能提高查询速度呢?急!
as
select rank () over (order by testtime desc) xh,Stationinfo.StationName,Report.Dpress,ZDayDunShuiHaoDian.Consumption1,History.* from History left join Stationinfo on History.StationName=Stationinfo.Agreement left join Report on Report.StationName=History.StationName
left join ZDayDunShuiHaoDian on ZDayDunShuiHaoDian.StationName=History.StationName
where History.ID in(select max(ID) from History group by StationName) and Report.ID in(select max(ID) FROM Report group by StationName) and ZDayDunShuiHaoDian.ID in(select max(ID) from ZDayDunShuiHaoDian group by StationName)
order by Testtime desc
这是我写的SQL存储过程,在SQL 2005中运行好几分钟才能查出数据来。如果要是在C#中调用那就更慢了。如果更改才能提高查询速度呢?急!
作者: xinshixiaoguan 发布时间: 2011-12-22
太长
说明各表数据量,有利于抓住重点
思路:
1、分步,利用临时表保存中间数据
2、语句修改,NOT EXISTS 代替你的MAX子查询
说明各表数据量,有利于抓住重点
思路:
1、分步,利用临时表保存中间数据
2、语句修改,NOT EXISTS 代替你的MAX子查询
作者: Haiwer 发布时间: 2011-12-22
引用 1 楼 haiwer 的回复:
太长
说明各表数据量,有利于抓住重点
思路:
1、分步,利用临时表保存中间数据
2、语句修改,NOT EXISTS 代替你的MAX子查询
太长
说明各表数据量,有利于抓住重点
思路:
1、分步,利用临时表保存中间数据
2、语句修改,NOT EXISTS 代替你的MAX子查询
海爷V5
作者: fredrickhu 发布时间: 2011-12-22
你这个包含三个表的全表聚合,如果三个表有一个大的就会很慢。基本无法优化。
作者: kuqideyupian 发布时间: 2011-12-22
引用 3 楼 kuqideyupian 的回复:
你这个包含三个表的全表聚合,如果三个表有一个大的就会很慢。基本无法优化。
你这个包含三个表的全表聚合,如果三个表有一个大的就会很慢。基本无法优化。
鸭子么。。
作者: SQL777 发布时间: 2011-12-22
引用 1 楼 haiwer 的回复:
太长
说明各表数据量,有利于抓住重点
思路:
1、分步,利用临时表保存中间数据
2、语句修改,NOT EXISTS 代替你的MAX子查询
太长
说明各表数据量,有利于抓住重点
思路:
1、分步,利用临时表保存中间数据
2、语句修改,NOT EXISTS 代替你的MAX子查询
支持海爷。
作者: SQL777 发布时间: 2011-12-22
相关阅读 更多
热门阅读
-
office 2019专业增强版最新2021版激活秘钥/序列号/激活码推荐 附激活工具
阅读:74
-
如何安装mysql8.0
阅读:31
-
Word快速设置标题样式步骤详解
阅读:28
-
20+道必知必会的Vue面试题(附答案解析)
阅读:37
-
HTML如何制作表单
阅读:22
-
百词斩可以改天数吗?当然可以,4个步骤轻松修改天数!
阅读:31
-
ET文件格式和XLS格式文件之间如何转化?
阅读:24
-
react和vue的区别及优缺点是什么
阅读:121
-
支付宝人脸识别如何关闭?
阅读:21
-
腾讯微云怎么修改照片或视频备份路径?
阅读:28