數據訪問
下列準則提供了在應用程序中有效進行數據訪問的建議。
將 SQL Server 和存儲過程用于數據訪問 在 .NET Framework 提供的所有數據訪問方法中,使用 SQL Server 進行數據訪問是生成高性能、可縮放 Web 應用程序的推薦選擇。使用托管 SQL Server 提供程序時,可通過盡可能使用編譯的存儲過程而不是 SQL 命令獲得額外的性能提高。有關使用 SQL Server 存儲過程的信息,請參見將存儲過程用于命令。
將 SqlDataReader 類用于快速只進數據游標 SqlDataReader 類提供了從 SQL Server 數據庫檢索的只進數據流。如果您可以在 ASP.NET 應用程序中使用只讀流,則 SqlDataReader 類提供比 DataSet 類更高的性能。SqlDataReader 類使用 SQL Server 的本機網絡數據傳輸格式從數據庫連接直接讀取數據。例如,當綁定到 SqlDataSource 控件時,通過將 DataSourceMode 屬性設置為 DataReader,您將獲得更好的性能。(使用數據讀取器會導致某些功能的丟失。)另外,SqlDataReader 類實現 IEnumerable 接口,該接口也使您可以將數據綁定到服務器控件。有關更多信息,請參見 SqlDataReader 類。有關 ASP.NET 如何訪問數據的信息,請參見通過 ASP.NET 訪問數據。
盡可能緩存數據和頁輸出 ASP.NET 提供了一些機制,它們會在不需要為每個頁請求動態計算頁輸出或數據時緩存這些頁輸出或數據。另外,通過設計要進行緩存的頁和數據請求(特別是在站點中預期將有較大通訊量的區域),可以優化這些頁的性能。與使用 .NET Framework 的任何其他功能相比,適當地使用緩存可以更好地提高站點的性能。
在使用 ASP.NET 緩存時,應注意以下事項。首先,不要緩存太多項。緩存每個項都有內存開銷。不要緩存容易重新計算和很少使用的項。其次,給緩存項分配的有效期不要太短。很快到期的項會導致緩存中不必要的周轉,并且會導致額外的代碼清除和垃圾回收工作。使用與“ASP.NET Applications”性能對象關聯的“Cache Total Turnover Rate”(緩存總流通率)性能計數器,您可以監視緩存中由于項到期而導致的周轉。高周轉率可能說明存在問題,特別是當項在到期前被移除時。(這種情況有時稱作內存壓力。)
有關如何緩存頁輸出和數據請求的信息,請參見 ASP.NET 緩存概述。