摘要:關於 ASP.NET 網頁的資料分頁效率問題 - 重要喔!!
關於 ASP.NET 網頁之資料分頁與排序的效率問題,我們在「用實例學ASP.NET 3.5/基礎篇(使用VB)」與「用實例學ASP.NET 3.5/基礎篇(使用VC#)」的第八章「資料存取最隨意:探討ObjectDataSource控制項」的下列兩節,都已經做了非常清楚的說明:
8-5自訂分頁機制,提昇資料提取效能-非常重要!!
8-6自訂排序機制,提昇資料提取效能-非常重要!!
使 用者介面分頁機制的優點就是非常容易實作,但是背後卻隱含著極大的危機。當我們採用使用者介面分頁機制的時候,來源資料庫資料表的所有資料列都會被載入至 伺服器記憶體中。比方說,假設來源資料庫資料表擁有一百萬筆資料列,而且您每一頁顯示10筆資料列,為了顯示這10筆資料列,仍然需要將所有的一百萬筆資 料列載入至伺服器記憶體。顯然此舉會對Web伺服器與資料庫伺服器造成難以想像的負擔。
我們的建議是,如果來源資料庫資料表擁有龐大筆數的資料列時,應該採用「資料來源分頁機制」。詳細的作法,我們在書中已有詳細的介紹,於此不再討論。
結論是,雖然使用 ObjectDataSource 控制項要自己撰寫大量的程式碼,但是其高度的彈性與自主性卻是無可取代的。這也是為什麼 ObjectDataSource 控制項深受許多開發高手喜愛的原因,我們衷心期望大家也能體會其優勢與好處,並善加利用。所以說呢,大家還是必須學習如何撰寫 ADO.NET 與 LINQ 的程式碼喔!
事實上,我們在下面一文中所提到的非同步捲動縮圖相簿,就使用了 ObjectDataSource 的資料來源分頁機制,大家可以參考看看:
http://blog.xuite.net/alwaysfuturevision/liminzhang/18303887
章立民