我有一個簡單的Windows Forms應用程序,它被編寫爲C#4.0。該應用程序顯示數據庫中的一些記錄。該應用程序具有由用戶啓動的查詢選項。Windows窗體應用程序的中間層緩存
在數據庫中的記錄,我們可以稱之爲喬布斯 考慮兩列作業ID和狀態
這是由兩個後臺服務更新,這就像一個生產者消費者服務的工作其實。作業的狀態將由後面的這些服務更新。
現在,對於可以從數據庫中查詢記錄的選項的用戶來說,例如,根據狀態查詢數據(提交,處理,完成)。這可能會導致數千條記錄,並且GUI可能會在顯示大量數據時遇到一些性能故障。
因此,將查詢結果的塊顯示爲頁面很重要。在用戶手動刷新或進行新查詢之前,GUI不會刷新。
對於例如由於工作不斷從服務中更新,工作狀態在任何時間點都可能不同。頁面在從數據庫中獲取數據時的基本要求。
我正在使用LINQ to SQL從數據庫中獲取數據。它使用起來非常簡單,但沒有必要滿足這種需求的中級緩存。如果記錄數量非常高,使用進程內存來緩存結果可以將頁面內存激增至極限。不幸的是,LINQ不提供任何中間層緩存設施與DataContext對象。
用C#4.0 + SQL Server + Windows環境實現分頁機制的最佳方式是什麼?
一些替代方案我覺得有一個可以臨時存儲結果作爲緩存的複製表/ DB。或者使用進取的應用程序庫的應用程序緩存塊。我相信這是大多數開發人員面臨的典型問題。這是解決這個問題的最有效的方法。 (注意:我的應用程序和數據庫在同一個機器上運行)
感謝您的回答,我是這個新手。你能幫助一些鏈接上的優化表和索引分頁? – sarat 2012-07-27 06:17:41
創建索引的規範是[here](http://msdn.microsoft.com/en-us/library/ms188783.aspx),但我建議您做一些網絡搜索:[SQL Server索引](https ://www.google.com/search q = SQL +服務器+索引)。 – eulerfx 2012-07-27 14:58:18