我們有一個SQL Server 2012數據庫,包含多個表和記錄,基本上我們正面臨着SQL查詢在兩個相同SQL查詢的表上的問題。第一個SQL查詢執行時間較少,第二個SQL查詢執行速度很慢。SQL Server查詢問題
我不知道爲什麼有人會幫我解決這個問題? 我們兩個查詢給出如下....
首先查詢(取這麼多的時間來執行):
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)
第二個查詢(少取執行時間):
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
檢查這兩個查詢執行計劃的決議。你是否缺少任何索引?每種情況下有多少行符合標準?如果'TrackerID = 46'返回比112多100倍的行,並且您沒有任何索引,則查詢可能會多花費100倍。發佈兩個查詢的執行計劃 –