asp.net程式最佳化 盡量減少資料庫連接操作

來源:互聯網
上載者:User

項目以我自己的設計編碼完成,並整合測試。初始化資料時,問題出現了。剛開始體現在用戶端接受資料很慢。測試環境環境下,資料庫伺服器部署在國外,網站部署在公司內部,而且我一直認為我的程式在資料庫資料處理這裡已經做了足夠的最佳化,包括索引和主鍵已經做到了合理使用。綜上所述,起初的速度問題一直沒有引起我的關注清單。

然而最後問題的關鍵恰恰出在資料庫連接查詢方面,頻繁查詢導致資料初始化速度很慢。剛開始我採取的方法是即用即查:需要資料的時候就從資料庫查,有比較多的單表查詢返回單個欄位的情況。假如我有大概3000條左右的資料集合,我迴圈取出其中的每一條,再從其它資料表裡查詢得到需要的欄位,這樣無故增加了3000多次資料庫連接和關閉操作,當網路速度不理想時,程式速度就無法忍耐了。

堅持一條原則:盡量減少資料庫連接操作。跟前端開發最佳化中的盡量少Http請求類似。

最終我採取的方案是將所需要的資料經過多個資料表統一放到一個List對象中,也就是放到記憶體中,在根據LINQ查詢其中的每條資料,這樣速度會快很多。這樣似乎破壞力一個原則,之前我遵循的多表查詢最好不要inner join3個以上的表,而這次出現了多次一個sql語句就inner join3個表以上的情況.雖然破壞了這個原則,但是相比速度極慢,連功能都實現不了的情況,顯然inner join 也可以讓人接受。

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.