2010-12-16 99 views
0

我有一個數據庫兩個數據庫表,有超過3000萬條記錄,當加入它們並使用row_number()進行尋呼時,查詢需要很長時間,同時還有很多資源! 我怎樣才能特質這些表:尋呼和大型sql服務器表

  • 使用索引視圖保存分頁結果爲每個用戶(意見不支持參數),如果我用每用戶視圖,這將是該數據的重複
  • 將桌子分成較小的桌子

有沒有完美的解決方案?

+0

您正在使用什麼版本的SQL Server? – Oded 2010-12-16 12:57:00

+0

sql server 2008企業版 – Hadad 2010-12-16 12:58:20

+2

如果你首先解釋你爲什麼要這樣做,這將會非常有幫助。沒有用戶將通過30M行進行翻頁。您正在解決的業務問題是什麼?他們爲什麼瀏覽數據頁面?他們希望找到什麼?爲什麼使用分頁數據解決方案? – 2010-12-16 16:58:42

回答

2

如果您使用OPTION FAST(n),它會優化查詢以提供該數量的記錄。我已經在擁有+20百萬條記錄的表上成功地使用了這一點,將執行時間從分鐘減少到了毫秒

但是,如果您將此用於第10,000個頁面,碰巧是第1,000,000條記錄,則不起作用。如果你的用戶想要做這樣的事情,你將不得不創建一個有序的快照並從中執行查詢。