1. 在資料層分頁資料。可以通過excutereader或者存儲過程實作等。
2. 盡量使用excutereader來讀取資料,excutereader是效率最高的,在microsoft的petshop 4.0全部資料通路都是用excutereader來實作的,除非你對非連接配接有特殊要求(如 smartclient智能用戶端等)。
3. 在非連接配接場合,用datatable比用dataset性能好,除非你要儲存多個關系表。
4. 使用datatable的importrow方法。
有些場合需要把大量資料從一個datatable複制到另一個datatable,使用datatable的importrow方法可以大大提高性能,資料量少時沒多大分别,當資料量到一萬行以上時就可以明顯的提高,可以達到幾倍。
5. 把資料序列化為二進制檔案友善傳輸。
我們在處理dataset,datatable對象時可以序列化為xml檔案,如果要在網絡傳輸,xml檔案會産生記憶體,網絡帶寬等資源問題。這時我們就可以把它序列化為二進制檔案,這樣生成的檔案會減少很多,代碼如下:
filestream fs = new filestream(@"xmldata.bin",filemode.create);
binaryformatter bf = new binaryformatter();
bf.serialize(fs,xmldata);
fs.colse();
這樣生成的二進制檔案稱為xmlbinary,用winhex直接打開還可以看到一些xml标記在裡面,如果資料量很大,這時加一行代碼:
xmldata.remortingformat = serializationformat.binary;
這時生成的檔案稱為truebinary檔案,當處理大量(超過10000行)時生成的檔案尺寸是xmlbinary的幾分之一。序列化的時候會自動儲存模式,這樣解序過程很簡單。我還不知道解序比直接讀取xml性能會下降多少。
6. 合理利用連接配接池。
連接配接池對性能的提高有很大的作用,預設是打開的。預設的min pool size是0,一般設為一個比較小的值,如5。max pool size預設是100,大多數web站點也夠用,大型的适當增大。
7. 使用sqlclr開發
如果你是專注開sql server系列那你應該去研究一下sqlclr,它的功能非常強大,在很多場合都可以提高性能(特别是大型企業級應用)。
8. 通過靜态類來通路app.config/web.config
我們有很多配置資訊都是放在app.config/web.config,通路都會很頻繁,這時建立一個靜态類,所有的屬性都通過靜态類來通路,可以在一定程度提高性能,靜态類隻執行個體化一次,而app.config/web.config會産生很多io操作。