日期:2014-05-18  浏览次数:20389 次

ADO.NET 中 DataReader 各种读取方式性能差别 -- 拍砖有分 200
很早就做了这么一个测试,一直没有发布出来,刚才看到   http://community.csdn.net/Expert/TopicView3.asp?id=5696773   中关于   box/unbox   问题,就整理了一下,与大家分享,希望对   .NET   新手而又喜欢嘀咕:“为什么你的程序就是跑我快”的朋友有帮助

限于篇幅,暂时无法讨论各种读取方式适用场景,诸位大虾楼下拍砖吧

~~【拍砖有分】允许,偶也拉风一次哈~~

A.
非官方(^_^)测试结论(以下序号越大,性能越低)

1.   DataReader.GetXXX( < <ColumnIndex> > )

2.   DataReader.GetXXX(Dictionary <string,   int> [ < <ColumnName> > ])
[Dictionary <string,   int> .Add( < <ColumnName> > ,   DataReader.GetOrdinal( < <ColumnName> > ))]  

3.   DataReader.GetXXX((Int32)Hashtable[ < <ColumnName> > ])
[Hashtable.Add( < <ColumnName> > ,   DataReader.GetOrdinal( < <ColumnName> > ))]

4.   ( < <Type> > )DataReader[ < <ColumnIndex> > ]

5.   DataReader.GetXXX(DataReader.GetOrdinal( < <ColumnName> > ))

6.   Convert.ToXXX(DataReader[ < <ColumnIndex> > ])

7.   ( < <Type> > )DataReader[ < <ColumnName> > ]

8.   Convert.ToXXX(DataReader[ < <ColumnName> > ]

------解决方案--------------------
好东西,我偷一个~~嘎嘎
------解决方案--------------------
狂顶 以前都用的是第8种方法也
------解决方案--------------------

------解决方案--------------------
学习一下!
------解决方案--------------------
lz:
lblHostName.Text = dr[ "hostName "].ToString();和
lblHostName.Text = (string)dr[ "hostName "];和
lblHostName.Text = Convert.ToString(dr[ "hostName "]);
这三个那个性能好呢?
------解决方案--------------------
学习楼主

------解决方案--------------------
为什么呢?
------解决方案--------------------
頂頂頂
------解决方案--------------------
顶 楼主辛苦了
------解决方案--------------------
顶顶顶顶顶!!!
------解决方案--------------------

------解决方案--------------------
好东东,顶
------解决方案--------------------
有点意思
------解决方案--------------------
学习
------解决方案--------------------
mark
------解决方案--------------------
高效的运行方法是值得一看的!
------解决方案--------------------
先顶了再看.
------解决方案--------------------
我也去搞个测试。
------解决方案--------------------
学习
------解决方案--------------------
刚刚在博客园看到了啊
很好
谢谢楼主
给分吧
------解决方案--------------------
jf
------解决方案--------------------