sql查询速度的问题!
高手们,真的很着急,我是新手,请求大家帮帮我。在sql数据库里大概有200万以上的数据,查询速度太慢,索引建的不太对,请大侠们替我出出主意看看索引怎么建,还有就是这个sql语句还需要优化没?多谢多谢
SELECT DeviceNo, Road,No, PlateColor,
(SELECT TypeName
FROM tabType
WHERE TypeCode =Type) AS Type,Logo, Speed, WatchTime, Pic1
FROM tabVehicle
WHERE (DeviceNo = '地点1 ' or DeviceNo = '地点二 ' OR DeviceNo = '地点三 ' OR DeviceNo = '地点4 ' ) AND
(WatchTime > '2007-01-17 08:54:31 ') AND (WatchTime < '2007-01-18 20:54:31 ') AND
(Type =
(SELECT TypeCode
FROM tabType
WHERE TypeName = '小))
------解决方案--------------------SELECT DeviceNo, Road,No, PlateColor,
(SELECT TypeName
FROM tabType
WHERE TypeCode =Type) AS Type,Logo, Speed, WatchTime, Pic1
FROM tabVehicle
WHERE (DeviceNo in( '地点1 ', '地点二 ', '地点三 ', '地点4 ') AND
(WatchTime between '2007-01-17 08:54:31 ' AND '2007-01-18 20:54:31 ') AND
(Type =
(SELECT TypeCode
FROM tabType
WHERE TypeName = '小))
------解决方案--------------------DeviceNo,WatchTime,Type 上建索引
SELECT DeviceNo, Road,No, PlateColor,
(SELECT TypeName
FROM tabType
WHERE TypeCode =Type) AS Type,Logo, Speed, WatchTime, Pic1
FROM tabVehicle
WHERE (DeviceNo = '地点1 ' AND
(WatchTime between '2007-01-17 08:54:31 ' AND '2007-01-18 20:54:31 ') AND
(Type =
(SELECT TypeCode
FROM tabType
WHERE TypeName = '小))
union all
SELECT DeviceNo, Road,No, PlateColor,
(SELECT TypeName
FROM tabType
WHERE TypeCode =Type) AS Type,Logo, Speed, WatchTime, Pic1
FROM tabVehicle
WHERE (DeviceNo = '地点2 ' AND
(WatchTime between '2007-01-17 08:54:31 ' AND '2007-01-18 20:54:31 ') AND
(Type =
(SELECT TypeCode
FROM tabType
WHERE TypeName = '小))
union all
SELECT DeviceNo, Road,No, PlateColor,
(SELECT TypeName
FROM tabType
WHERE TypeCode =Type) AS Type,Logo, Speed, WatchTime, Pic1
FROM tabVehicle
WHERE (DeviceNo = '地点3 ' AND
(WatchTime between '2007-01-17 08:54:31 ' AND '2007-01-18 20:54:31 ') AND
(Type =
(SELECT TypeCode
FROM tabType
WHERE TypeName = '小))
union all
SELECT DeviceNo, Road,No, PlateColor,
(SELECT TypeName
FROM tabType
WHERE TypeCode =Type) AS Type,Logo, Speed, WatchTime, Pic1
FROM tabVehicle
WHERE (DeviceNo = '地点4 ' AND
(