• <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>
    • 軟件測試技術
    • 軟件測試博客
    • 軟件測試視頻
    • 開源軟件測試技術
    • 軟件測試論壇
    • 軟件測試沙龍
    • 軟件測試資料下載
    • 軟件測試雜志
    • 軟件測試人才招聘
      暫時沒有公告

    字號: | 推薦給好友 上一篇 | 下一篇

    數據源的選擇:DataSet 與DataReader及泛類型集合的性能測試

    發布: 2009-3-18 10:19 | 作者: 不詳 | 來源: 測試時代采編 | 查看: 241次 | 進入軟件測試論壇討論

    領測軟件測試網 很早就想測試一下DataSet, DataReader的性能差別了
      到了.Net 2.0時代,又多了一個泛類型集合綁定,于是我做了以下實驗


      前言:
            測試代碼未必標準,但是起碼可以說明一些問題
            主要使用重復綁定數據集10000次(全部在服務端進行),綁定全部使用GridView的綁定列
      
       測試條件:

      控件:GridView
       字段:ID, NAME
       數目  15條
       循環次數 10000
       測試次數 3次    軟件:VS2005,SQLServer2005,WindowXP
       測試結果:
        DataSet: 9.6, 8.9, 8.75 = 9.08秒
            DataReader:6.5, 6.25,5.8 = 6.18秒泛類型集合: 7, 7.1,6.8 = 6.97秒總結     如果以DataSet的速度為標準,那么DataReader的速度提高了47%,泛類型數據集速度提高了30%,差距是隨著記錄集數量還有字段數量遞增的。

            從結果來看,雖然3次的時間不夠準確,但是足夠描述大概情況了,DataSet這種東西個人認為,除非有必要比如需要非連接更新,排序等等。一般沒必要使用.DataReader局限性太大而且靈活性不夠,個人認為綁定一些簡單控件比如DropDownList或ListBox差不多。當然它的主要用途還是用于后臺讀取數據并進行操作。            

            泛類型數據集,這個我是看了PetShop4.0后才學的。感覺配合DataReader以及業務原型(Model)一起使用足以替換DataSet。而且實際擴展和靈活性在某些方面甚至超過DataSet。
            我們使用DataReader的時候最怕數據庫位置變了(雖然不大可能),當然DataReader也可以根據列名獲取值,但是效率太低了,而且雖然解決了位置問題,但是無法解決字段名更改(這個比改位置的幾率還大) 我的解決方案是,在SQL語句中先排好字段的順序,比如SELECT ID,NAME,TIEM FROM TABLE這樣就解決了字段亂序的問題,如果服務器字段名更變了只需要修改SQL語句就好了。
            那么表現層呢?表現層因為使用的是業務原型與泛類型集合,所以實現了與數據庫字段的弱依賴,你只需要指定好原型的屬性進行綁定就好了,操作方式和綁定DataSet的做法大概一致。
            這樣一來,除了添加了新字段,所有的改變都可以只通過修改SQL語句就可以全部更新。非常方便,而且效率更高。有人會問,使用DataSet同樣可以實現弱依賴,只需使用列名編號 DataTable.Rows[0][0]就可以了。的確,這樣同樣可以,但是會不會發現,比起Model.ID ,DataTable.Rows[0[0]已經喪失了可讀性。所以對于現在的開發,除非有特殊需要,不然已經不需要使用DataSet作為數據源了。



    延伸閱讀

    文章來源于領測軟件測試網 http://www.kjueaiud.com/

    TAG: dataset 類型 數據源 性能測試 DataReader DataSet


    關于領測軟件測試網 | 領測軟件測試網合作伙伴 | 廣告服務 | 投稿指南 | 聯系我們 | 網站地圖 | 友情鏈接
    版權所有(C) 2003-2010 TestAge(領測軟件測試網)|領測國際科技(北京)有限公司|軟件測試工程師培訓網 All Rights Reserved
    北京市海淀區中關村南大街9號北京理工科技大廈1402室 京ICP備2023014753號-2
    技術支持和業務聯系:info@testage.com.cn 電話:010-51297073

    軟件測試 | 領測國際ISTQBISTQB官網TMMiTMMi認證國際軟件測試工程師認證領測軟件測試網

    老湿亚洲永久精品ww47香蕉图片_日韩欧美中文字幕北美法律_国产AV永久无码天堂影院_久久婷婷综合色丁香五月

  • <ruby id="5koa6"></ruby>
    <ruby id="5koa6"><option id="5koa6"><thead id="5koa6"></thead></option></ruby>

    <progress id="5koa6"></progress>

  • <strong id="5koa6"></strong>