我在SSMS2008以下查詢:查詢速度在SQL Server Management Studio中(2008年)與NHibernate的session.Query
select *
from Measurements
where dt > '2016-01-01 04:00:00'
and dt < '2016-01-01 04:05:00'
and classification = 'heartbeat'
我的表中有超過400萬條記錄在裏面,心跳等數據(我知道),但上面的查詢在不到1秒內執行(檢索1500條記錄)。 dt和分類列上有索引。
當我使用此查詢NHibernate的:
var heartbeats = session.Query<Measurements>()
.Where(m.dt > dtFr &&
m.dt < dtTo &&
m.classification = 'heartbeat')
.ToList();
。然而,此查詢失敗。唯一不同的是(據我所見),是我使用DateTime對象(和dtTo
)並將它們傳遞給linq表達式。但是,當這個查詢失敗(超時),我可以複製+粘貼失敗的查詢到SSMS2008,它會在那裏執行沒有任何問題。
編輯:昨天我做了太多的測試,我把事情弄混了。這似乎是失敗的查詢不會運行(均不是從SSMS)。我看不出我做錯了什麼。
那麼現在的問題是什麼?當你不知道自己在做什麼時很難幫助你... –