两个相同的MSSql查询,其中一个占用较少的执行时间和其他需要这么多时间执行但两个id都不同

时间:2016-07-04 09:04:16

标签: asp.net-mvc-4

Our Trackomatic Database Images 两个相同的MSSql查询,其中一个执行时间较少,另一个需要花费很多时间执行。两个id都不同。我想知道为什么会这样。

首先查询:

(SELECT * FROM (SELECT TOP 10 TrackerResponse.EventName,TrackerResponse.ReceiveTime,ISNull(TrackerResponse.InputStatus,0)  AS InputStatus,
                    TrackerResponse.Latitude,TrackerResponse.Longitude,TrackerResponse.Speed,
                    TrackerResponse.TrackerID,TrackerResponse.OdoMeter,TrackerResponse.Direction,
                    UserCar.CarNo FROM TrackerResponse
                    INNER JOIN UserCar ON (UserCar.TrackerID = TrackerResponse.TrackerID)
                    WHERE  (TrackerResponse.EventName IS NOT NULL AND TrackerResponse.EventName<>'')
                    AND TrackerResponse.TrackerID = 56 Order By ID DESC) AS Events)

第二次查询:

(SELECT * FROM (SELECT TOP 10 TrackerResponse.EventName,TrackerResponse.ReceiveTime,ISNull(TrackerResponse.InputStatus,0)  AS InputStatus,
                    TrackerResponse.Latitude,TrackerResponse.Longitude,TrackerResponse.Speed,
                    TrackerResponse.TrackerID,TrackerResponse.OdoMeter,TrackerResponse.Direction,
                    UserCar.CarNo FROM TrackerResponse
                    INNER JOIN UserCar ON (UserCar.TrackerID = TrackerResponse.TrackerID)
                    WHERE  (TrackerResponse.EventName IS NOT NULL AND TrackerResponse.EventName<>'')
                    AND TrackerResponse.TrackerID = 112 Order By ID DESC) AS Events)

有人应该为这个问题提供完美的解决方案

1 个答案:

答案 0 :(得分:1)

有人可能会要求更多的数据,而另一方面,您应该提供更多信息,例如:查询本身以及它在两种情况下都要检索的数据。

如果你不使用拼写检查,你在这里不会得到很多答案。看看你的句子,你真的要澄清你的问题。

所以1.拼写检查,2。看句子。 3.提供查询和数据示例以及什么类型的数据库(oracle / MySQL)。