2014-09-12 45 views
1

我有一個計算方法來爲網格分頁,返回大約200萬的數字,我不想用這樣的查詢來提高速度,但是LINQ:Linq在大量數據上改善了頁數統計方法的速度

SELECT count(*) 
FROM (SELECT ROW_NUMBER() OVER (ORDER BY id) AS Row, Id 
FROM myTable) t 
WHERE Row between 0 and (pageSize*visiblePages)+1 -- The number 1 is to check if there is another set of 1 or more pages 

我的問題是,我不需要計數2百萬的頁面,會顯示我有11頁。該方法只檢索10結果正常,但我不能與ROW_NUMBER數

+0

_我不需要爲一個頁面計算2百萬個頁面,這將顯示我有11個頁面._你能更清楚一點嗎?如果不計算有多少頁面,則不需要計算,否則就不這樣做。 – Shoe 2014-09-12 18:03:12

+0

爲什麼不直接從myTable執行select count(*),看看count(*)是否> pageSize * visiblePages – Paparazzi 2014-09-12 18:38:08

+0

問題是myTable中的count()速度很慢,需要超過20秒。這些列是索引的,但我必須進行一些連接才能完成計數。 我不需要知道我在每個頁面上顯示的更多頁面。 例如,我在數據庫上有30個頁面,但是當前頁面顯示的是從第1頁到第10頁,我不需要高於100的計數(10頁,每頁10個結果) – Saliba 2014-09-12 19:15:23

回答