内联-麻烦帮忙看下这个SQL查询该怎么改进

问题描述

麻烦帮忙看下这个SQL查询该怎么改进

有三张表,分别是EquipmentMessage,Sensor,SensorInputData,Sensor以
EquipmentMessage的主键equipmentId做外键,SensorInputData则以Sensor的主键sensorId做外键。SensorInputData是大表,可能有千万条数据,另外两个都是小表,最多不会超过200条数据。我的这个查询第二句是一个“*”号,此时查询速度很快,大概170ms,如果我只想要其中个别字段,查询速度极慢,需要8s。现在我就想要其中个别字段,该怎么改进

 select
*   --这里用“*”查询很快,但是如果改成equipment.equipmentName就很慢了
from
(
    select
    sensorData.valueType+':'+(Convert(varchar(20),round(sensorData.value,2)))+sensor.sensorUnit as 数据,
    Convert(varchar(20),sensorData.date,120) as 日期,
    sensor.equipmentId as ref_equipmentId
    from Sensor as sensor
    join SensorInputData as sensorData on sensor.sensorId=sensorData.sensorId
    and not exists
    (
        select 1 from SensorInputData as t where t.sensorId=sensorData.sensorId and t.date>sensorData.date
    )
) sensorData join EquipmentMessage as equipment
on equipment.equipmentId=sensorData.ref_equipmentId

解决方案

http://blog.chinaunix.net/uid-20476365-id-3238091.html

时间: 2024-09-17 03:28:53

内联-麻烦帮忙看下这个SQL查询该怎么改进的相关文章

各位大神麻烦帮忙看下SQL对不对

问题描述 各位大神麻烦帮忙看下SQL对不对 parameterType="String"> SELECT receive_car_code, use_time, sc.coupon_name FROM car_coupon cc LEFT JOIN (SELECT * FROM sys_coupon WHERE coupon_id IN(SELECT coupon_id FROM sys_coupon_company WHERE 1=1 AND company_id=#{comp

spring和mybatis集成时总报错 麻烦帮忙看下什么原因

问题描述 spring和mybatis集成时总报错 麻烦帮忙看下什么原因 项目请求数据的时候报Request processing failed; nested exception is org.apache.ibatis.binding.BindingException: Invalid bound statement (not found): com.business.dao.system.AdminMapper.selectByPrimaryKey麻烦大神帮忙看下这是啥原因,找了好久不知道

android-[Android]ExpandableListView消息响应出错!麻烦帮忙看下!

问题描述 [Android]ExpandableListView消息响应出错!麻烦帮忙看下! final ExAdapter listAdapter = new ExAdapter(MeterOperateActivity.this); buttonListView.setAdapter(listAdapter); buttonListView.setGroupIndicator(null); buttonListView.setDivider(null); buttonListView.set

JS冲突问题,麻烦帮忙看下。

问题描述 我的树形菜单用的是带记忆功能的JS代码同时还要用到漂浮的JS代码现在的问题是菜单的可以正常试用漂浮的代码不能跟随页面上下滚动不知道问题在那里麻烦知道的帮忙看下.先谢谢了.本人纯菜鸟,麻烦说的详细点.或者直接告诉我怎么改也可以.这个是菜单的代码<scriptlanguage="javascript"type="text/javascript">//---获取ClassNamedocument.getElementsByClassName=func

麻烦帮忙看下这个程序出现什么问题了呢?运行是报“出错啦!”

问题描述 importjava.io.*;publicclassfile1{publicstaticvoidmain(String[]args)throwsException{Filef1=newFile("E:\abc\汇编\abc.txt");FileInputStreamfis=newFileInputStream(f1);DataInputStreamdis=newDataInputStream(fis);try{System.out.println(dis.readUTF()

xplanner部署tomcat启动报错,麻烦帮忙看下,错误信息贴出来如下

问题描述 [1235]ERROR-work.web.context.ContextLoader-Contextinitializationfailedorg.springframework.beans.factory.BeanCreationException:Errorcreatingbeanwithname'metaRepository'definedinclasspathresource[spring-beans.xml]:Errorsettingpropertyvalues;nested

麻烦帮忙看下这段多线程机制是否有问题

问题描述 下面是自己封闭的list然后申明了一个同步List类.后面在程序中申明了这个类的一个静态对象如下:publicstaticJobQueuequeue=newJobQueue(1000);然后程序中放数据跟取数据分别用的是下面的方法放数据:SendControlThread.queue.addJob(cmop);取数据:objEx=SendControlThread.queue.getJob();请问会不会出现捞数据的线程跟发送的线程都wait的情况或者还是其他问题.一个捞取线程.6个取

student-mysql的问题,大神帮忙看下

问题描述 mysql的问题,大神帮忙看下 student表查询一个id, 该id存在修改这条记录的name ,该id不存在插入一条student记录,怎么写可以使用存储过程 解决方案 你可以按照下面的格式写这个SQL,注意一定要在name上创建唯一索引 insert into student(name) values ('name1') on duplicate key update name = 'name1' 解决方案二: 你可以按照下面的格式写这个SQL,注意一定要在name上创建唯一索引

java-网页中有的显示消息会出现重复,求大神帮忙看下问题

问题描述 网页中有的显示消息会出现重复,求大神帮忙看下问题 sql语句 解决方案 这个估计是左连接表的时候,连接的表有重复数据导致的 解决方案二: 你把sql 语句放到sql 执行环境中测试看看有没有重复的数据.