自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

C#、LINQ與ADO.NET主從表比對操作

開發(fā) 后端
我們今天要簡單對比下C#、LINQ與ADO.NET在主從表比對操作上的不同,包括優(yōu)點和缺點。

上傳的數(shù)據(jù)可能存在版本不一致,基礎(chǔ)信息都不會有變化但擴(kuò)展的表或字段會不存在,原因是客戶端存在沒有升級的情況。

系統(tǒng)從Access數(shù)據(jù)庫文件中取數(shù)據(jù),使用整合后把相關(guān)數(shù)據(jù)并統(tǒng)計后對數(shù)據(jù)進(jìn)行入庫到系統(tǒng)數(shù)據(jù)庫。部分的字段不能直接入庫需要進(jìn)行轉(zhuǎn)換處理。由于數(shù)據(jù)庫數(shù)據(jù)在進(jìn)行操作時已經(jīng)不會產(chǎn)生任何的變化??梢园褦?shù)據(jù)都預(yù)先讀取到內(nèi)存當(dāng)中。從而產(chǎn)生數(shù)據(jù)臨時存放容器選擇為IList和DataTable選擇。

表A為主表:外表操作以表A為切入口, 根據(jù)表1 的某人字段從而選擇當(dāng)前記錄行的子信息來源,關(guān)聯(lián)字段要用到兩個字段才能***。主表對從表的關(guān)系為:一對多的關(guān)系

表B為從表1:

表C為從表2:

把數(shù)據(jù)源轉(zhuǎn)成實體操作

好處:操作直觀,操作的字段不用每次比較時都進(jìn)行比較。

缺點:性能不高。一個月的數(shù)據(jù)上百條記錄用時幾秒,一年的數(shù)據(jù)上幾千條記錄統(tǒng)計整理用時5分鐘。數(shù)據(jù)量越多性能越明顯。

ADO.NET

直接把表數(shù)據(jù)都查詢出來沒有任何過濾條件。在進(jìn)行從表查詢時不進(jìn)行對實際的數(shù)據(jù)庫文件進(jìn)行操作。

好處:通過主表查詢從表的記錄信息在性能消耗并不高。同一文件一個月數(shù)據(jù)用時1秒之內(nèi),一年數(shù)據(jù)10秒之內(nèi)。

缺點:操作并不直觀,每次比較都要進(jìn)行強(qiáng)制轉(zhuǎn)換格式。后期有業(yè)務(wù)規(guī)則變化不好處理。

采用支持關(guān)聯(lián)查詢的ORM框架

好處:不用處理再次查詢的操作,而且能用實體操作更為直觀。

缺點:市面上沒有支持Access的ORM框架,而且一般流行的ORM框架都以配置文件使用。不方便動態(tài)變化的上傳文件名。

現(xiàn)在項目處理方案:

由于方案三先使用起來比較麻煩要自己好寫底層類。Ado.net做操作查詢?nèi)缓筠D(zhuǎn)為實體進(jìn)行統(tǒng)計。發(fā)現(xiàn)真實使用時和直接采用方案二的時間一樣。原因可能是從表查詢才是性能的主要瓶頸,轉(zhuǎn)為實體不是并不是什么性能問題。

如果采用方案三的方式又可以在查詢DataTable這個處提高更多的性能。并且減少浪費內(nèi)存資源不像現(xiàn)有方案用了同一數(shù)據(jù)占用了兩份資源。

備注:為什么沒有真實的數(shù)據(jù)報告。主要當(dāng)時沒有想到要寫這篇文檔,就沒有把當(dāng)時使用的數(shù)據(jù)保留下來。不能一味聽到別人說那個好那個不好那跟著別人走更多的時候是要有實踐。個人覺得現(xiàn)在的ORM框架是很好用很方便邏輯和代碼的處理,但遇到現(xiàn)實中的情況就有點力不從心(如表多了少了、字段多了少了等等)。更多時還要自己寫處理方案來確保性能。還真的很久沒寫博客了這編的主要是體現(xiàn)個思想和不要人云亦云。

原文鏈接:http://www.cnblogs.com/16659716/archive/2012/05/10/2493975.html

【編輯推薦】

  1. Linq to xml操作XML
  2. XML之父解讀未來互聯(lián)網(wǎng)"游戲化"的三個真諦
  3. Ajax和Web服務(wù)數(shù)據(jù)格式:XML SOAP HTML
  4. 超強(qiáng)解析XML——簡單直接的來
  5. 解析PHP中的XML數(shù)據(jù)
責(zé)任編輯:彭凡 來源: 博客園
相關(guān)推薦

2009-09-14 13:37:25

LINQ ADO.NE

2009-08-21 16:35:08

使用C#結(jié)合ADO.N

2009-08-13 11:22:59

LINQ和ADO.NE

2009-08-20 18:44:54

C#和ADO.NET

2024-06-18 13:17:02

數(shù)據(jù)庫框架

2009-08-20 16:07:39

C#和ADO.NET訪

2009-08-19 16:56:45

C#和ADO.NET

2009-04-02 13:29:41

LINQSilverlightADO.NET

2009-12-18 14:27:24

ADO.NET對象

2009-12-21 17:35:24

ADO.NET對象

2009-12-22 14:15:08

ADO.Net處理數(shù)據(jù)

2009-06-02 10:57:22

ADO.NET多數(shù)據(jù)表操作

2009-12-29 14:55:31

ADO.NET Dat

2009-12-31 16:09:22

ADO與ADO.NET

2009-12-28 15:46:22

ADO.NET操作

2009-12-23 11:10:38

ADO.NET狀態(tài)

2009-11-12 15:47:14

ADO.NET更新數(shù)據(jù)

2009-11-11 13:59:15

ADO.NET與ADO

2009-12-22 10:15:17

ADO.NET規(guī)則

2009-12-29 14:01:45

ADO.NET Sql
點贊
收藏

51CTO技術(shù)棧公眾號