亚洲免费av电影一区二区三区,日韩爱爱视频,51精品视频一区二区三区,91视频爱爱,日韩欧美在线播放视频,中文字幕少妇AV,亚洲电影中文字幕,久久久久亚洲av成人网址,久久综合视频网站,国产在线不卡免费播放

        ?

        采用LINQ技術(shù)與ADO.NET技術(shù)檢索檔案的性能比較

        2012-04-29 00:00:00卞咸杰
        北京檔案 2012年1期

        摘要:在分析采用ADO.NET技術(shù)與LINQ技術(shù)檢索數(shù)字檔案的優(yōu)缺點(diǎn)基礎(chǔ)上,通過(guò)實(shí)驗(yàn)測(cè)試證明采用LINQ技術(shù)檢索的性能更加穩(wěn)定、優(yōu)勢(shì)更加明顯。

        關(guān)鍵詞:LINQ ADO.NET 數(shù)字檔案 檢索技術(shù)

        隨著檔案數(shù)字化建設(shè)的推進(jìn),數(shù)字檔案檢索的速度、效率、質(zhì)量越來(lái)越高。作為建立在現(xiàn)代信息技術(shù)普遍應(yīng)用基礎(chǔ)上的數(shù)字檔案館,以高度有序的綜合檔案信息資源為處理核心,以高速寬帶通信網(wǎng)絡(luò)為技術(shù)設(shè)施的超大規(guī)模、分布式數(shù)字化信息系統(tǒng),贏得了越來(lái)越多的檔案用戶重視。建立數(shù)字檔案檢索平臺(tái),利用最新的檢索手段為用戶提供高效便捷的檔案信息資源是數(shù)字檔案館建設(shè)的一項(xiàng)重要功能和核心工作。

        一、采用ADO.NET技術(shù)檢索檔案的優(yōu)缺點(diǎn)

        1.采用ADO.NET技術(shù)檢索檔案的優(yōu)點(diǎn)

        當(dāng)前在數(shù)字檔案檢索中運(yùn)用微軟解決方案所用的技術(shù)主要是ADO.NET,該技術(shù)是與數(shù)據(jù)源交互的.NET技術(shù)。有許多的Data Providers,它將允許與不同的數(shù)據(jù)源交流——取決于它們所使用的協(xié)議或者數(shù)據(jù)庫(kù)。然而無(wú)論使用什么樣的Data Provider,都將使用相似的對(duì)象與數(shù)據(jù)源進(jìn)行交互①。實(shí)踐表明,ADO.NET技術(shù)在檢索系統(tǒng)里長(zhǎng)期占統(tǒng)治地位是有一定優(yōu)越性的,主要表現(xiàn)在:第一,維護(hù)方便。第二,分工明確。第三,性能優(yōu)化。第四,減少交互。

        2.采用ADO.NET技術(shù)檢索檔案的缺點(diǎn)

        ADO.NET在檔案檢索系統(tǒng)里還存在不夠靈活、商業(yè)邏輯層與數(shù)據(jù)庫(kù)在一起、不易移植等缺點(diǎn)。同時(shí)在檔案檢索系統(tǒng)開(kāi)發(fā)過(guò)程中,一個(gè)非常簡(jiǎn)單的功能需要若干行代碼才能完成,導(dǎo)致在設(shè)計(jì)檔案數(shù)據(jù)檢索操作時(shí),不得不考慮面向過(guò)程的思維模式來(lái)考慮檔案數(shù)據(jù)檢索工作。這與新的面向?qū)ο箝_(kāi)發(fā)需求不相符,此時(shí)需要尋求一個(gè)更好的真正實(shí)現(xiàn)面向?qū)ο箝_(kāi)發(fā)的技術(shù)。

        二、采用LINQ技術(shù)檢索檔案的優(yōu)缺點(diǎn)

        1.采用LINQ技術(shù)檢索檔案的優(yōu)點(diǎn)

        LINQ(Language Integrated Query,語(yǔ)言集成查詢)是由微軟公司提供的一種查詢技術(shù),它最大的特點(diǎn)就是能夠把查詢功能直接引入到.NET Framework 3.5 所支持的編程語(yǔ)言(如C#、Visual Basic.NET等)中,并整合為一體,從而,查詢操作成為編程語(yǔ)言的一部分,可以像創(chuàng)建編程語(yǔ)言代碼的方法一樣,方便地創(chuàng)建查詢操作表達(dá)式②。在檔案檢索系統(tǒng)的開(kāi)發(fā)中,LINQ的優(yōu)點(diǎn)主要體現(xiàn)在以下幾方面:

        第一,提高開(kāi)發(fā)效率,降低開(kāi)發(fā)成本。在LINQ To SQL正式推出之前,假如SQL語(yǔ)句寫(xiě)得有問(wèn)題,只有到運(yùn)行時(shí)才能發(fā)現(xiàn)。而LINQ To SQL 在一切圍繞數(shù)據(jù)的項(xiàng)目?jī)?nèi)都可以使用,特別是在項(xiàng)目中缺少SQL server方面的專家時(shí),其強(qiáng)大的功能可以幫助開(kāi)發(fā)人員迅速地完成項(xiàng)目③。因此,LINQ To SQL的推出,把開(kāi)發(fā)人員從煩瑣的技術(shù)細(xì)節(jié)中解脫出來(lái),從而使其更加關(guān)注項(xiàng)目的邏輯。同時(shí),LINQ To SQL的出現(xiàn),也大大降低了檔案數(shù)據(jù)庫(kù)應(yīng)用程序開(kāi)發(fā)門(mén)檻,加快了檔案數(shù)據(jù)庫(kù)應(yīng)用程序的開(kāi)發(fā)進(jìn)度。

        第二,真正實(shí)現(xiàn)面向?qū)ο?,降低錯(cuò)誤檢查難度。LINQ To SQL是在ADO.NET和C#2.0的基礎(chǔ)上實(shí)現(xiàn)的。首先,它通過(guò)自動(dòng)翻譯SQL語(yǔ)句,并把結(jié)果集創(chuàng)建成對(duì)象并返回。其次,LINQ To SQL語(yǔ)句是在編譯期間做檢查,而不是在運(yùn)行時(shí)檢查。最后,LINQ To SQL是針對(duì)對(duì)象操作的,更符合今天的面向?qū)ο箝_(kāi)發(fā)思想④。

        第三,開(kāi)發(fā)工具強(qiáng)力支持,擴(kuò)展功能更加豐富。在LINQ To SQL技術(shù)出現(xiàn)之前,在Java和net領(lǐng)域分別有Hibernate技術(shù)、NHibernate技術(shù)來(lái)實(shí)現(xiàn)object/relational 持久和查詢服務(wù)。與NHibernate相比,LINQ To SQL優(yōu)勢(shì)有:第一,影射代碼自動(dòng)生成。VS2008提供了SQLMetal和OR Designer兩個(gè)工具來(lái)完成此步驟。而在NHibernate中,必須通過(guò)手工寫(xiě)來(lái)完成。第二,影射代碼有更多的選擇。NHibernate只能把數(shù)據(jù)庫(kù)的信息配置在一個(gè)XML中,而LINQ To SQL有兩種方式,一是放到XML中,這稱為Externl Mapping;二是以Attribute的形式,存在于各個(gè)property中⑤。

        2.采用LINQ技術(shù)實(shí)施數(shù)字檔案檢索存在的問(wèn)題

        第一,LINQ是非延遲加載的,要實(shí)現(xiàn)模糊條件檢索與多條件檢索,如果要立即加載結(jié)果需要先將檢索結(jié)果轉(zhuǎn)換成List,但它是無(wú)序的,目前解決辦法需要重寫(xiě)List的Sort()方法。

        第二,LINQ的dbml不能隨意修改,手動(dòng)更改VS2008的對(duì)象關(guān)系設(shè)計(jì)器中的dbml代碼的話,原先修改好的東西將全被覆蓋,要是需要一些特殊功能或者一些關(guān)鍵系統(tǒng)配置產(chǎn)生變化,就不得不要修改dbml代碼,這就需要對(duì)LINQ代碼相當(dāng)?shù)氖炀毲倚枰獙?duì)面向?qū)ο蟮睦斫庾銐蛏羁獭?/p>

        第三,LINQ如不能很好地使用存儲(chǔ)過(guò)程,那么它的性能就會(huì)變?nèi)?,如果遇到多媒體檢索且占用大量的網(wǎng)絡(luò)資源的檢索情況,一般都需要使用存儲(chǔ)過(guò)程來(lái)解決性能問(wèn)題,這樣會(huì)給檢索的性能提高帶來(lái)不便。

        三、LINQ技術(shù)與ADO.NET技術(shù)檢索檔案的性能比較

        1.比較測(cè)試環(huán)境

        測(cè)試環(huán)境為:CPU Intel (R) Core(TM)2 Duo T5870@2.00GHz778MHz,1.93GB的內(nèi)存,操作系統(tǒng)Windows XP SP3,測(cè)試程序是—個(gè)ASP.NET應(yīng)用程序,測(cè)試數(shù)據(jù)庫(kù)為數(shù)字化檔案數(shù)據(jù)庫(kù)。

        2.測(cè)試步驟

        通過(guò)測(cè)試檔案數(shù)據(jù)檢索結(jié)果,在測(cè)試時(shí)間的統(tǒng)計(jì)上采用多次測(cè)試取平均值的方式執(zhí)行,在測(cè)試過(guò)程中檔案數(shù)據(jù)量每次增加一個(gè)數(shù)量級(jí)。

        3.測(cè)試過(guò)程⑥

        (1)檢索0.1萬(wàn)條檔案數(shù)據(jù)性能比較。在不同時(shí)間點(diǎn)上,分別采用LINQ技術(shù)與ADO.NET技術(shù)檢索0.1萬(wàn)條檔案數(shù)據(jù),在第一個(gè)時(shí)間段,ADO.NET檢索執(zhí)行時(shí)間為0.113000 ms,LINQ檢索執(zhí)行時(shí)間為0.0450000 ms;第二個(gè)時(shí)間段,ADO.NET檢索執(zhí)行時(shí)間為0.1550000 ms,LINQ檢索執(zhí)行時(shí)間為0.0590000 ms;第三個(gè)時(shí)間段,ADO.NET檢索執(zhí)行時(shí)間為0.1210000 ms,LINQ檢索執(zhí)行時(shí)間為0.0550000 ms。這三個(gè)時(shí)間段,采用ADO.NET技術(shù)和LINQ技術(shù)檢索檔案數(shù)據(jù)的的平均時(shí)間分別為0.1296667 ms和0.0530000 ms。

        (2)檢索1萬(wàn)條檔案數(shù)據(jù)性能比較。在不同時(shí)間點(diǎn)上,分別采用LINQ技術(shù)與ADO.NET技術(shù)檢索1萬(wàn)條檔案數(shù)據(jù),在第一個(gè)時(shí)間段,ADO.NET檢索執(zhí)行時(shí)間為0.1420000 ms,LINQ檢索執(zhí)行時(shí)間為0.0460000 ms;第二個(gè)時(shí)間段,ADO.NET檢索執(zhí)行時(shí)間為0.1560000 ms,LINQ檢索執(zhí)行時(shí)間為0.0420000ms;第三個(gè)時(shí)間段,ADO.NET檢索執(zhí)行時(shí)間為0.1470000ms,LINQ檢索執(zhí)行時(shí)間為0.0520000ms。這三個(gè)時(shí)間段,采用ADO.NET技術(shù)和LINQ技術(shù)檢索檔案數(shù)據(jù)的的平均時(shí)間分別為0.1483333 ms和0.0466667 ms。

        (3)檢索10萬(wàn)條檔案數(shù)據(jù)性能比較。在不同時(shí)間點(diǎn)上,分別采用LINQ技術(shù)與ADO.NET技術(shù)檢索10萬(wàn)條檔案數(shù)據(jù),在第一個(gè)時(shí)間段,ADO.NET檢索執(zhí)行時(shí)間為0.1620000 ms,LINQ檢索執(zhí)行時(shí)間為0.0520000ms;第二個(gè)時(shí)間段,ADO.NET檢索執(zhí)行時(shí)間為0.1370000 ms,LINQ檢索執(zhí)行時(shí)間為0.0240000ms;第三個(gè)時(shí)間段,ADO.NET檢索執(zhí)行時(shí)間為0.1440000ms,LINQ檢索執(zhí)行時(shí)間為0.0250000ms。這三個(gè)時(shí)間段,采用ADO.NET技術(shù)和LINQ技術(shù)檢索檔案數(shù)據(jù)的的平均時(shí)間分別為0.1476667 ms和0.0336667 ms。

        (4)檢索100萬(wàn)條檔案數(shù)據(jù)性能比較。在不同時(shí)間點(diǎn)上,分別采用LINQ技術(shù)與ADO.NET技術(shù)檢索100萬(wàn)條檔案數(shù)據(jù),在第一個(gè)時(shí)間段,ADO.NET檢索執(zhí)行時(shí)間為0.1530000 ms,LINQ檢索執(zhí)行時(shí)間為0.0380000ms;第二個(gè)時(shí)間段,ADO.NET檢索執(zhí)行時(shí)間為0.1710000 ms,LINQ檢索執(zhí)行時(shí)間為0.0320000ms;第三個(gè)時(shí)間段,ADO.NET檢索執(zhí)行時(shí)間為0.1760000ms,LINQ檢索執(zhí)行時(shí)間為0.0400000ms。這三個(gè)時(shí)間段,采用ADO.NET技術(shù)和LINQ技術(shù)檢索檔案數(shù)據(jù)的平均時(shí)間分別為0.1666667 ms和0.0366667 ms。

        通過(guò)對(duì)以上測(cè)試數(shù)據(jù)進(jìn)行匯總,得到圖中信息:

        四、結(jié)論

        在4組測(cè)試的數(shù)據(jù)中,發(fā)現(xiàn)使用同一種檢索技術(shù)檢索不同量的檔案數(shù)據(jù)所用時(shí)間相差無(wú)幾,如采用ADO.NET技術(shù),檢索0.1萬(wàn)條數(shù)據(jù)的時(shí)間為0.1296667 ms,檢索100萬(wàn)條數(shù)據(jù)的時(shí)間為0.1666667 ms,甚至檢索10萬(wàn)條數(shù)據(jù)的時(shí)間比1萬(wàn)條數(shù)據(jù)的時(shí)間還略快。但是,采用LINQ技術(shù)檢索,不管在哪一組測(cè)試中,都比ADO.NET技術(shù)檢索性能好,如在0.1萬(wàn)條數(shù)據(jù)檢索中,ADO.NET技術(shù)的檢索時(shí)間是LINQ技術(shù)的2.44654倍,在100萬(wàn)條數(shù)據(jù)檢索中,ADO.NET技術(shù)的檢索時(shí)間是LINQ技術(shù)的4.54545倍。這表明在檔案數(shù)據(jù)量相同的情況下,采用LINQ技術(shù)檢索所花費(fèi)的平均時(shí)間比傳統(tǒng)ADO.NET技術(shù)檢索時(shí)間快得多,而且數(shù)據(jù)量越大檢索性能優(yōu)勢(shì)就越明顯。

        因此,通過(guò)對(duì)LINQ技術(shù)檢索與ADO.NET技術(shù)檢索性能進(jìn)行比較,在測(cè)試過(guò)程中完成的是同樣檢索功能,在被檢索數(shù)據(jù)量不斷增加的情況下,ADO.NET技術(shù)實(shí)施檔案數(shù)據(jù)檢索效率有明顯的下降,檔案數(shù)據(jù)檢索時(shí)間也呈現(xiàn)明顯增加;但運(yùn)用LINQ技術(shù)檢索,在檔案數(shù)據(jù)量增加的情況下檔案檢索時(shí)間并沒(méi)有帶來(lái)明顯變化,特別是在海量檔案數(shù)據(jù)檢索中,LINQ技術(shù)顯現(xiàn)出絕對(duì)優(yōu)勢(shì)。

        此外,在開(kāi)發(fā)中完成相同的檢索功能,運(yùn)用LINQ技術(shù)還可以大大減少代碼的編寫(xiě)量,提高檔案數(shù)據(jù)訪問(wèn)效率,避免系統(tǒng)在運(yùn)行過(guò)程中的注入漏洞,在代碼開(kāi)發(fā)中還可以用最少的代碼實(shí)現(xiàn)最強(qiáng)的功能,同時(shí)還能夠大大提高系統(tǒng)開(kāi)發(fā)的可擴(kuò)展性。通過(guò)對(duì)檔案檢索過(guò)程中的安全性進(jìn)行驗(yàn)證,LINQ技術(shù)檢索可以有效避免SQL注入,即使輸入中有非法字符,LINQ在處理中會(huì)將其作為一個(gè)參數(shù)來(lái)使用,保證在檔案數(shù)據(jù)檢索過(guò)程中的安全性。盡管目前在檔案檢索系統(tǒng)里,ADO.NET技術(shù)唱主角,但作為語(yǔ)言集成查詢的LINQ新技術(shù)用于檔案檢索將成為發(fā)展趨勢(shì),并逐漸顯出其強(qiáng)勁的快速、便捷功能。

        注釋:

        *本文為2009年“江蘇省檔案科技項(xiàng)目”(項(xiàng)目編為:2009—L15)《導(dǎo)航式檔案網(wǎng)上信息檢索方法的研究》和2007年江蘇省高校自然科學(xué)基礎(chǔ)研究面上項(xiàng)目(項(xiàng)目編號(hào)為:07KJD120234)《數(shù)字化文獻(xiàn)管理關(guān)鍵技術(shù)的研究》階段性研究成果。

        ①徐祥濤.基于ADO.NET數(shù)據(jù)庫(kù)訪問(wèn)技術(shù)的研究與實(shí)現(xiàn)[J].中國(guó)新技術(shù)新產(chǎn)品,2009(17):35

        ② 侯利軍.精通LINQ數(shù)據(jù)訪問(wèn)技術(shù)—基于C#[M].北京:人民郵電出版社,2008:3

        ③宣帥. .NET平臺(tái)下MVC框架應(yīng)用研究[D]. 南京:南京航空航天大學(xué),2010: 51

        ④淺談Linq?To?Sql集成數(shù)據(jù)庫(kù)語(yǔ)言的優(yōu)劣[EB/OL]. [2011—11—02] http://www.bccn.net/Article/sjk/sqlserver/jszl/200709/6578.html

        ⑤LINQ to SQL與NHibernate橫向?qū)Ρ萚EB/OL]. [2011—11—02]http://developer.51cto.com/art/200909/153084.htm

        ⑥卞咸杰.基于LINQ技術(shù)的數(shù)字檔案檢索方法及應(yīng)用研究[D].無(wú)錫:江南大學(xué),2010:55-56

        作者單位:鹽城師范學(xué)院

        91青草久久久久久清纯| 精品久久久久久久无码人妻热| 天美传媒一区二区| 天天综合久久| 最新日韩人妻中文字幕一区| 开心五月激情五月五月天| 午夜免费福利小电影| 伊人久久综合精品无码av专区| 欧美手机在线视频| 日韩精品中文字幕第二页| 亚洲av无码一区二区三区网址| 国产精品福利自产拍久久| 国产免费无码9191精品| 精品少妇人妻av一区二区蜜桃| 一区二区三区视频| 国产精品亚洲五月天高清| 国产不卡一区在线视频| 亚洲男人av天堂久久资源| 日本japanese丰满多毛| 亚洲精品美女久久久久久久 | 白白色日韩免费在线观看| 日本精品一区二区三区二人码| 久久人与动人物a级毛片| 久久这里只精品国产2| 白色白在线观看免费2| a级国产乱理伦片| 7777精品久久久大香线蕉| 免费国产在线精品三区| 日韩精品在线视频一二三| 中文字幕在线亚洲日韩6页| 99热成人精品国产免| 亚洲av综合日韩精品久久| 欧美丰满熟妇bbbbbb| 国产精品一区二区暴白浆| 国产av一区二区三区香蕉| 日日噜噜夜夜狠狠视频| 热re99久久精品国产99热| 无码AⅤ最新av无码专区| 媚药丝袜美女高清一二区| 欧美 丝袜 自拍 制服 另类| 色综合久久精品中文字幕|