0
我在排序的查詢中遇到了一些負面的性能。NHibernate排序性能
這是怎麼了正在生成的查詢和NHibernate的呈現:
SELECT TOP 50 y0_,
y1_
FROM **(SELECT distinct r1_.Id as y0_,
this_.Id as y1_,
ROW_NUMBER()
OVER(ORDER BY this_.Id DESC) as __hibernate_sort_row
FROM Event this_
inner join Registration r1_
on this_.Id = r1_.EventId
WHERE this_.IsDeleted = 0 /* @p2 */
and this_.SportId in (22 /* @p3 */)) as query**
WHERE query.__hibernate_sort_row > 20
ORDER BY query.__hibernate_sort_row;
大膽的部分(**內 - 符號)是獲取所有的結果,並把他們爲了 - 這是需要時間。 有沒有什麼辦法可以使這個查詢更有效率?我只是想讓排序和分頁成爲可能,而不必造成太多的開銷。
我使用的是NHibernate 2.1。未來版本中涉及我的問題的任何改進?
最好的問候, 馬蒂亞斯
我沒有看到任何特定的查詢,我會稱爲可怕的性能,你是否通過優化器運行查詢,看看你是否缺少任何索引? –
這是一個索引問題。謝謝! – Mattias
不客氣,我會將它作爲答案發布。 –