欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

asp.net程序優(yōu)化 盡量減少數(shù)據(jù)庫(kù)連接操作

 更新時(shí)間:2012年05月02日 23:26:49   作者:  
最近做一個(gè)項(xiàng)目,做的比較郁悶,現(xiàn)在把項(xiàng)目經(jīng)驗(yàn)總結(jié)在這里。項(xiàng)目的主要功能就是為第三方程序提供數(shù)據(jù),并根據(jù)客戶端的調(diào)用提供數(shù)據(jù)更新。我的程序?qū)儆诜?wù)端。服務(wù)端以站點(diǎn)形式部署,以Xml的數(shù)據(jù)格式輸出
項(xiàng)目以我自己的設(shè)計(jì)編碼完成,并整合測(cè)試。初始化數(shù)據(jù)時(shí),問(wèn)題出現(xiàn)了。剛開始體現(xiàn)在客戶端接受數(shù)據(jù)很慢。測(cè)試環(huán)境環(huán)境下,數(shù)據(jù)庫(kù)服務(wù)器部署在國(guó)外,網(wǎng)站部署在公司內(nèi)部,而且我一直認(rèn)為我的程序在數(shù)據(jù)庫(kù)數(shù)據(jù)處理這里已經(jīng)做了足夠的優(yōu)化,包括索引和主鍵已經(jīng)做到了合理使用。綜上所述,起初的速度問(wèn)題一直沒(méi)有引起我的關(guān)注。

然而最后問(wèn)題的關(guān)鍵恰恰出在數(shù)據(jù)庫(kù)連接查詢方面,頻繁查詢導(dǎo)致數(shù)據(jù)初始化速度很慢。剛開始我采取的方法是即用即查:需要數(shù)據(jù)的時(shí)候就從數(shù)據(jù)庫(kù)查,有比較多的單表查詢返回單個(gè)字段的情況。假如我有大概3000條左右的數(shù)據(jù)集合,我循環(huán)取出其中的每一條,再?gòu)钠渌鼣?shù)據(jù)表里查詢得到需要的字段,這樣無(wú)故增加了3000多次數(shù)據(jù)庫(kù)連接和關(guān)閉操作,當(dāng)網(wǎng)絡(luò)速度不理想時(shí),程序速度就無(wú)法忍耐了。

堅(jiān)持一條原則:盡量減少數(shù)據(jù)庫(kù)連接操作。跟前端開發(fā)優(yōu)化中的盡量少Http請(qǐng)求類似。

最終我采取的方案是將所需要的數(shù)據(jù)經(jīng)過(guò)多個(gè)數(shù)據(jù)表統(tǒng)一放到一個(gè)List對(duì)象中,也就是放到內(nèi)存中,在根據(jù)LINQ查詢其中的每條數(shù)據(jù),這樣速度會(huì)快很多。這樣似乎破壞力一個(gè)原則,之前我遵循的多表查詢最好不要inner join3個(gè)以上的表,而這次出現(xiàn)了多次一個(gè)sql語(yǔ)句就inner join3個(gè)表以上的情況.雖然破壞了這個(gè)原則,但是相比速度極慢,連功能都實(shí)現(xiàn)不了的情況,顯然inner join 也可以讓人接受。

相關(guān)文章

  • C#/.NET讀取或修改文件的創(chuàng)建時(shí)間及修改時(shí)間詳解

    C#/.NET讀取或修改文件的創(chuàng)建時(shí)間及修改時(shí)間詳解

    這篇文章主要給大家介紹了關(guān)于C#/.NET讀取或修改文件的創(chuàng)建時(shí)間及修改時(shí)間的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2018-08-08
  • IE和火狐中模仿Click事件及提交到新窗口總結(jié)(asp.net)

    IE和火狐中模仿Click事件及提交到新窗口總結(jié)(asp.net)

    在程序中去模擬一個(gè)click事件是可以的,如果這個(gè)click事件是來(lái)自<a>標(biāo)簽的,那如果希望得到單擊按鈕的效果,IE可以,但火狐無(wú)法實(shí)現(xiàn)
    2012-01-01
  • asp.net下url傳遞中文的解決方案

    asp.net下url傳遞中文的解決方案

    asp.net下url傳遞中文的解決方案...
    2007-04-04
  • asp.net?Core中同名服務(wù)注冊(cè)的實(shí)現(xiàn)代碼

    asp.net?Core中同名服務(wù)注冊(cè)的實(shí)現(xiàn)代碼

    Asp.Net?Core中自帶了容器,同時(shí)也可以使用AutoFac替換掉默認(rèn)的容器,以下為兩種方式同名服務(wù)的注冊(cè)實(shí)現(xiàn),對(duì)asp.net?Core服務(wù)注冊(cè)的實(shí)現(xiàn)代碼感興趣的朋友一起看看吧
    2022-03-03
  • C# 接口的隱式與顯示實(shí)現(xiàn)及適應(yīng)場(chǎng)景

    C# 接口的隱式與顯示實(shí)現(xiàn)及適應(yīng)場(chǎng)景

    以前在用到接口時(shí),從來(lái)沒(méi)注意到接口分為隱式實(shí)現(xiàn)與顯示實(shí)現(xiàn)。昨天在瀏覽博客時(shí)看到相關(guān)內(nèi)容,現(xiàn)在根據(jù)自己的理解記錄一下,方便日后碰到的時(shí)候溫習(xí)溫習(xí),需要的朋友可以了解下
    2012-12-12
  • ASP.NETWeb服務(wù)器驗(yàn)證控件如何使用

    ASP.NETWeb服務(wù)器驗(yàn)證控件如何使用

    這篇文章主要介紹了ASP.NETWeb服務(wù)器驗(yàn)證控件如何使用,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2015-09-09
  • asp.net關(guān)于onpropertychange和oninput事件實(shí)現(xiàn)代碼

    asp.net關(guān)于onpropertychange和oninput事件實(shí)現(xiàn)代碼

    文本框,數(shù)據(jù)列表,當(dāng)在文本框中輸入條件時(shí)需要實(shí)時(shí)刷新數(shù)據(jù)列表,而且需要滿足多瀏覽器(IE6.0/7.0/8.0,FireFox,Opera,google chrome,Safair)其功能類似google的智能匹配,我是用asp.net實(shí)現(xiàn)的。
    2009-11-11
  • .Net整合Json實(shí)現(xiàn)REST服務(wù)客戶端的方法詳解

    .Net整合Json實(shí)現(xiàn)REST服務(wù)客戶端的方法詳解

    這篇文章主要給大家介紹了關(guān)于.Net整合Json實(shí)現(xiàn)REST服務(wù)客戶端的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧。
    2018-01-01
  • asp.net access添加返回自遞增id的實(shí)現(xiàn)方法

    asp.net access添加返回自遞增id的實(shí)現(xiàn)方法

    今天花了一點(diǎn)時(shí)間研究了這個(gè)問(wèn)題,除此之外,還順帶研究了小孔子cms添加數(shù)據(jù)的過(guò)程,access添加返回自遞增id也是從小孔子cms中研究出來(lái)的。
    2008-08-08
  • Asp.Net類型轉(zhuǎn)換類(通用類)代碼分享

    Asp.Net類型轉(zhuǎn)換類(通用類)代碼分享

    本文給大家分享兩段代碼,一段代碼關(guān)于asp.net類型轉(zhuǎn)換通用類的代碼,第二段關(guān)于asp.net 頁(yè)面數(shù)據(jù)驗(yàn)證通用類的實(shí)例代碼,代碼簡(jiǎn)單易懂,非常不錯(cuò),感興趣的朋友參考下吧
    2016-01-01

最新評(píng)論