0
我有一個數據庫兩個數據庫表,有超過3000萬條記錄,當加入它們並使用row_number()
進行尋呼時,查詢需要很長時間,同時還有很多資源! 我怎樣才能特質這些表:尋呼和大型sql服務器表
- 使用索引視圖保存分頁結果爲每個用戶(意見不支持參數),如果我用每用戶視圖,這將是該數據的重複
- 將桌子分成較小的桌子
有沒有完美的解決方案?
我有一個數據庫兩個數據庫表,有超過3000萬條記錄,當加入它們並使用row_number()
進行尋呼時,查詢需要很長時間,同時還有很多資源! 我怎樣才能特質這些表:尋呼和大型sql服務器表
有沒有完美的解決方案?
如果您使用OPTION FAST(n)
,它會優化查詢以提供該數量的記錄。我已經在擁有+20百萬條記錄的表上成功地使用了這一點,將執行時間從分鐘減少到了毫秒。
但是,如果您將此用於第10,000個頁面,碰巧是第1,000,000條記錄,則不起作用。如果你的用戶想要做這樣的事情,你將不得不創建一個有序的快照並從中執行查詢。
您正在使用什麼版本的SQL Server? – Oded 2010-12-16 12:57:00
sql server 2008企業版 – Hadad 2010-12-16 12:58:20
如果你首先解釋你爲什麼要這樣做,這將會非常有幫助。沒有用戶將通過30M行進行翻頁。您正在解決的業務問題是什麼?他們爲什麼瀏覽數據頁面?他們希望找到什麼?爲什麼使用分頁數據解決方案? – 2010-12-16 16:58:42